En criptografía , RC4 (Rivest Cipher 4 también conocido como ARC4 o ARCFOUR que significa RC4 alegado, 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 el comienzo del flujo de claves de salida no se descarta, o cuando se utilizan claves no aleatorias o relacionadas. Los usos particularmente problemáticos de RC4 han dado lugar a protocolos muy inseguros como WEP . [5]
General | |
---|---|
Diseñadores | Ron Rivest ( Seguridad RSA ) |
Publicado por primera vez | Filtrado en 1994 (diseñado en 1987) |
Detalle de cifrado | |
Tamaños de clave | 40–2048 bits |
Tamaño del estado | 2064 bits (1684 efectivo) |
Rondas | 1 |
Velocidad | 7 ciclos por byte en Pentium original [1] Supuesto RC4 modificado en Intel Core 2: 13,9 ciclos por byte [2] |
A partir de 2015 [actualizar], 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]
Se han realizado varios intentos para fortalecer RC4, en particular Spritz, RC4A, VMPC y RC4 + .
Historia
RC4 fue diseñado por Ron Rivest de RSA Security en 1987. Aunque oficialmente se denomina "Rivest Cipher 4", el acrónimo RC se entiende alternativamente como "Ron's Code" [9] (ver también RC2 , RC5 y RC6 ).
RC4 era inicialmente un secreto comercial , pero en septiembre de 1994 se publicó de forma anónima una descripción en la lista de correo de Cypherpunks . [10] Pronto se publicó en el grupo de noticias sci.crypt , donde Bob Jenkins lo analizó en unos 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 usa RC4 con licencia. Debido a que el algoritmo es conocido, ya no es un secreto comercial. El nombre RC4 es una marca registrada, por lo que a menudo se hace referencia a RC4 como ARCFOUR o ARC4 (que significa supuestamente RC4 ) [12] para evitar problemas de marcas registradas. RSA Security nunca ha lanzado oficialmente el algoritmo; Rivest, sin embargo, se ha vinculado 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 de él. [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 RFC 7465 lo prohibió para todas las versiones de TLS en 2015, debido a que los ataques RC4 debilitaron o rompieron 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.
Descripción
RC4 genera un flujo pseudoaleatorio de bits (un flujo de claves ). Al igual que con cualquier cifrado de flujo, estos se pueden utilizar para el cifrado combinándolo con el texto sin formato utilizando exclusivo de bits o ; el descifrado se realiza de la misma manera (ya que exclusivo-o con datos dados es una involución ). Esto es similar al pad de una sola vez, excepto que se utilizan bits pseudoaleatorios generados , en lugar de una secuencia preparada.
Para generar el flujo de claves, el cifrado utiliza un estado interno secreto que consta de dos partes:
- Una permutación de los 256 bytes posibles (indicados con "S" a continuación).
- Dos punteros de índice de 8 bits (denominados "i" y "j").
La permutación se inicializa con una clave de longitud variable , normalmente entre 40 y 2048 bits, utilizando el algoritmo de programación de claves (KSA). Una vez que esto se ha completado, el flujo de bits se genera utilizando el algoritmo de generación pseudoaleatoria (PRGA).
Algoritmo de programación de claves (KSA)
El algoritmo de programación de claves se utiliza para inicializar la permutación en la matriz "S". "longitud de clave" se define como el número de bytes en la clave y puede estar en el rango 1 ≤ longitud de clave ≤ 256, típicamente entre 5 y 16, correspondiente a una longitud de clave de 40 - 128 bits. Primero, la matriz "S" se inicializa a la permutación de identidad . Luego, S se procesa para 256 iteraciones de manera similar al PRGA principal, pero también se mezcla en bytes de la clave al mismo tiempo.
para yo de 0 a 255 S [i]: = ifin dej: = 0para yo de 0 a 255 j: = (j + S [i] + tecla [i mod keylength]) mod 256 intercambiar valores de S [i] y S [j]fin de
Algoritmo de generación pseudoaleatoria (PRGA)
Para tantas iteraciones como sean necesarias, el PRGA modifica el estado y genera un byte del flujo de claves. En cada iteración, el PRGA:
- incrementos I
- busca el i- ésimo elemento de S , S [ i ] , y agrega eso a j
- intercambia los valores de S [ i ] y S [ j ] luego usa la suma S [ i ] + S [ j ] (módulo 256) como índice para obtener un tercer elemento de S (el valor de la cadena clave K a continuación)
- luego, el bit a bit exclusivo ORed ( XORed ) con el siguiente byte del mensaje para producir el siguiente byte de texto cifrado o texto plano.
Cada elemento de S se intercambia con otro elemento al menos una vez cada 256 iteraciones.
yo: = 0j: = 0mientras se genera la salida: yo: = (yo + 1) mod 256 j: = (j + S [i]) mod 256 intercambiar valores de S [i] y S [j] K: = S [(S [i] + S [j]) mod 256] salida Kmientras tanto
Por lo tanto, esto produce una corriente de K [0], K [1], ... que son XOR 'ed con el texto plano para obtener el texto cifrado . Entonces texto cifrado [ l ] = texto plano [ l ] ⊕ K [ l ] .
Generadores de números aleatorios basados en RC4
Varios sistemas operativos incluyen arc4random
una API originada en OpenBSD que proporciona acceso a un generador de números aleatorios originalmente basado en RC4. En OpenBSD 5.5, lanzado en mayo de 2014, arc4random
se modificó para usar ChaCha20 . [15] [16] Las implementaciones de arc4random en FreeBSD , NetBSD [17] [18] y libbsd [19] de Linux también usan ChaCha20. Según las páginas del manual enviadas con el sistema operativo, en la versión 2017 de sus sistemas operativos de escritorio y móviles , Apple reemplazó RC4 con AES en su implementación de arc4random. Las páginas man para el nuevo arc4random incluyen el backronym "A Replacement Call for Random" para ARC4 como mnemónico, [20] ya que proporciona mejores datos aleatorios que rand () .
Los nuevos generadores de números aleatorios propuestos a menudo se comparan con el generador de números aleatorios RC4. [21] [22]
Varios ataques a RC4 pueden distinguir su salida de una secuencia aleatoria . [23]
Implementación
Muchos cifrados de flujo se basan en registros de desplazamiento de retroalimentación lineal (LFSR), que, si bien son eficientes en hardware, lo son menos en software. El diseño de RC4 evita el uso de LFSR y es ideal para la implementación de software, ya que solo requiere manipulaciones de bytes. Utiliza 256 bytes de memoria para la matriz de estado, S [0] a S [255], k bytes de memoria para la clave, clave [0] a clave [k-1] y variables enteras, i, j y K. Se puede realizar una reducción modular de algún valor módulo 256 con un AND bit a bit con 255 (lo que equivale a tomar el byte de orden inferior del valor en cuestión).
Vectores de prueba
Estos vectores de prueba no son oficiales, pero convenientes para cualquiera que pruebe su propio programa RC4. Las claves y el texto sin formato son ASCII , el flujo de claves y el texto cifrado están en hexadecimal .
Clave | Keystream | Texto sin formato | Texto cifrado |
---|---|---|---|
Clave | EB9F7781B734CA72A719 … | Texto sin formato | BBF316E8D940AF0AD3 |
Wiki | 6044DB6D41B7 … | pedia | 1021BF0420 |
Secreto | 04D46B053CA87B59 … | Ataque al amanecer | 45A01F645FC35B383552544B9BF5 |
Seguridad
A diferencia de un cifrado de flujo moderno (como los de eSTREAM ), RC4 no toma un nonce separado junto con la clave. Esto significa que si se va a utilizar una única clave a largo plazo para cifrar de forma segura múltiples transmisiones, el protocolo debe especificar cómo combinar el nonce y la clave a largo plazo para generar la clave de transmisión para RC4. Un enfoque para abordar esto es generar una clave RC4 "nueva" mediante el hash de una clave a largo plazo con un nonce . Sin embargo, muchas aplicaciones que usan RC4 simplemente concatenan key y nonce; El cronograma de clave débil de RC4 da lugar a ataques clave relacionados , como el ataque Fluhrer, Mantin y Shamir (que es famoso por romper el estándar WEP ). [24]
Debido a que RC4 es un cifrado de flujo , es más maleable que los cifrados de bloque comunes . Si no se usa junto con un código de autenticación de mensajes (MAC) fuerte , entonces el cifrado es vulnerable a un ataque de cambio de bits . El cifrado también es vulnerable a un ataque de cifrado de flujo si no se implementa correctamente. [25]
Es digno de mención, sin embargo, que RC4, al ser un cifrado de flujo, fue durante un período de tiempo el único cifrado común que fue inmune [26] al ataque BEAST de 2011 en TLS 1.0 . El ataque explota una debilidad conocida en la forma en que se usa el modo de encadenamiento de bloques de cifrado con todos los demás cifrados admitidos por TLS 1.0, que son todos cifrados de bloque.
En marzo de 2013, hubo nuevos escenarios de ataque propuestos por Isobe, Ohigashi, Watanabe y Morii, [27] así como AlFardan, Bernstein, Paterson, Poettering y Schuldt que utilizan nuevos sesgos estadísticos en la tabla de claves RC4 [28] para recuperar texto plano con gran cantidad de cifrados TLS. [29] [30]
El uso de RC4 en TLS está prohibido por RFC 7465 publicado en febrero de 2015.
Los sesgos de Roos y la reconstrucción clave a partir de la permutación
En 1995, Andrew Roos observó experimentalmente que el primer byte del flujo de claves está correlacionado con los primeros tres bytes de la clave y los primeros bytes de la permutación después de la KSA están correlacionados con alguna combinación lineal de los bytes de la clave. [31] Estos sesgos permanecieron sin explicación hasta 2007, cuando Goutam Paul, Siddheshwar Rathi y Subhamoy Maitra [32] demostraron la correlación clave-clave y en otro trabajo Goutam Paul y Subhamoy Maitra [33] demostraron la permutación-correlaciones clave. El último trabajo también utilizó las correlaciones de la clave de permutación para diseñar el primer algoritmo para la reconstrucción completa de la clave a partir de la permutación final después de la KSA, sin ninguna suposición sobre la clave o el vector de inicialización . Este algoritmo tiene una probabilidad constante de éxito en un tiempo que es la raíz cuadrada de la exhaustiva complejidad de búsqueda de claves. Posteriormente, se han realizado muchos otros trabajos sobre la reconstrucción de claves a partir de los estados internos de RC4. [34] [35] [36] Subhamoy Maitra y Goutam Paul [37] también mostraron que los sesgos de tipo Roos aún persisten incluso cuando se consideran índices de permutación anidados, como S [S [i]] o S [S [S [i]]] . Estos tipos de sesgos se utilizan en algunos de los métodos de reconstrucción clave posteriores para aumentar la probabilidad de éxito.
Salidas polarizadas del RC4
El flujo de claves generado por el RC4 está sesgado en diversos grados hacia ciertas secuencias, lo que lo hace vulnerable a ataques distintivos . El mejor ataque de este tipo se debe a Itsik Mantin y Adi Shamir, quienes demostraron que el segundo byte de salida del cifrado estaba sesgado hacia cero con una probabilidad de 1/128 (en lugar de 1/256). Esto se debe al hecho de que si el tercer byte del estado original es cero y el segundo byte no es igual a 2, el segundo byte de salida siempre es cero. Este sesgo se puede detectar observando solo 256 bytes. [23]
Souradyuti Paul y Bart Preneel de COSIC demostraron que el primer y el segundo bytes del RC4 también estaban sesgados. El número de muestras necesarias para detectar este sesgo es de 2 25 bytes. [38]
Scott Fluhrer y David McGrew también mostraron tales ataques que distinguían el flujo de claves del RC4 de un flujo aleatorio dado un gigabyte de salida. [39]
La caracterización completa de un solo paso de RC4 PRGA fue realizada por Riddhipratim Basu, Shirshendu Ganguly, Subhamoy Maitra y Goutam Paul. [40] Considerando todas las permutaciones, demuestran que la distribución de la salida no es uniforme dados i y j, y como consecuencia, la información sobre j siempre se filtra a la salida.
Ataque de Fluhrer, Mantin y Shamir
En 2001, Fluhrer , Mantin y Shamir hicieron un descubrimiento nuevo y sorprendente : en todas las claves RC4 posibles, las estadísticas de los primeros bytes del flujo de claves de salida son fuertemente no aleatorias y filtran información sobre la clave. Si la clave nonce y a largo plazo simplemente se concatenan para generar la clave RC4, esta clave a largo plazo se puede descubrir analizando una gran cantidad de mensajes cifrados con esta clave. [41] Este y otros efectos relacionados se utilizaron para romper el cifrado WEP ("privacidad equivalente por cable") utilizado con las redes inalámbricas 802.11 . Esto provocó una lucha por un reemplazo basado en estándares para WEP en el mercado 802.11 y condujo al esfuerzo de IEEE 802.11i y WPA . [42]
Los protocolos pueden defenderse de este ataque descartando la parte inicial del flujo de claves. Este algoritmo modificado se denomina tradicionalmente "RC4-drop [ n ]", donde n es el número de bytes de flujo de claves iniciales que se eliminan. El valor predeterminado de SCAN es n = 768 bytes, pero un valor conservador sería n = 3072 bytes. [43]
El ataque Fluhrer, Mantin y Shamir no se aplica a SSL basado en RC4, ya que SSL genera las claves de cifrado que utiliza para RC4 mediante hash, lo que significa que las diferentes sesiones de SSL tienen claves no relacionadas. [44]
El ataque de Klein
En 2005, Andreas Klein presentó un análisis del cifrado de flujo RC4 que muestra más correlaciones entre el flujo de claves RC4 y la clave. [45] Erik Tews , Ralf-Philipp Weinmann y Andrei Pychkine utilizaron este análisis para crear aircrack-ptw, una herramienta que rompe el RC4 de 104 bits utilizado en WEP de 128 bits en menos de un minuto. [46] Mientras que los ataques Fluhrer, Mantin y Shamir utilizaron alrededor de 10 millones de mensajes, aircrack-ptw puede romper claves de 104 bits en 40.000 cuadros con un 50% de probabilidad, o en 85.000 cuadros con un 95% de probabilidad.
Problema combinatorio
Un problema combinatorio relacionado con el número de entradas y salidas del cifrado RC4 fue planteado por primera vez por Itsik Mantin y Adi Shamir en 2001, según el cual, del total de 256 elementos en el estado típico de RC4, si x número de elementos ( x ≤ 256 ) solo se conocen (todos los demás elementos se pueden suponer que están vacíos), entonces el número máximo de elementos que se pueden producir de manera determinista también es x en las siguientes 256 rondas. Esta conjetura se puso fin a 2004 con una prueba formal dada por Souradyuti Paul y Bart Preneel . [47]
Ataque Royal Holloway
En 2013, un grupo de investigadores de seguridad del Grupo de Seguridad de la Información en Royal Holloway, Universidad de Londres, informó de un ataque que puede hacerse efectivo utilizando solo 2 34 mensajes cifrados. [48] [49] [50] Si bien aún no es un ataque práctico para la mayoría de los propósitos, este resultado es lo suficientemente cercano a uno que ha llevado a la especulación de que es plausible que algunas agencias criptológicas estatales ya tengan mejores ataques que hacen que RC4 sea inseguro . [6] Dado que, a partir de 2013[actualizar], una gran cantidad de tráfico TLS usa RC4 para evitar ataques en cifrados de bloque que usan encadenamiento de bloques de cifrado , si estos hipotéticos mejores ataques existen, entonces esto haría que la combinación TLS-con-RC4 sea insegura contra tales atacantes en una gran cantidad de escenarios prácticos . [6]
En marzo de 2015, el investigador de Royal Holloway anunció mejoras en su ataque, proporcionando un ataque 2 26 contra contraseñas cifradas con RC4, como se usa en TLS. [51]
Ataque de bar-mitzvah
En Black Hat Asia 2015, Itsik Mantin presentó otro ataque contra SSL utilizando cifrado RC4. [52] [53]
NOMORE ataque
En 2015, los investigadores de seguridad de KU Leuven presentaron nuevos ataques contra RC4 tanto en TLS como en WPA-TKIP . [54] Apodado el ataque Numerous Occurrence MOnitoring & Recovery Exploit (NOMORE), es el primer ataque de este tipo que se demostró en la práctica. Su ataque contra TLS puede descifrar una cookie HTTP segura en 75 horas. El ataque contra WPA-TKIP se puede completar en una hora y permite que un atacante descifre e inyecte paquetes arbitrarios.
Variantes RC4
Como se mencionó anteriormente, la debilidad más importante de RC4 proviene de la programación clave insuficiente; los primeros bytes de salida revelan información sobre la clave. Esto se puede corregir simplemente descartando una parte inicial del flujo de salida. [55] Esto se conoce como RC4-drop N , donde N es típicamente un múltiplo de 256, como 768 o 1024.
Se han realizado varios intentos para fortalecer RC4, en particular Spritz, RC4A, VMPC y RC4 + .
RC4A
Souradyuti Paul y Bart Preneel han propuesto una variante RC4, a la que llaman RC4A. [56]
RC4A utiliza matrices de dos estados S1 y S2 y dos índices j1 y j2 . Cada vez i se incrementa, se generan dos bytes:
- Primero, el algoritmo RC4 básico se realiza usando S1 y j1 , pero en el último paso, S1 [ i ] + S1 [ j1 ] se busca en S2 .
- En segundo lugar, la operación se repite (sin incrementar yo de nuevo) en S2 y j2 y Se emite S1 [S2 [ i ] + S2 [ j2 ]] .
Por tanto, el algoritmo es:
Toda la aritmética se realiza módulo 256yo: = 0j1: = 0j2: = 0mientras se genera la salida: yo: = yo + 1 j1: = j1 + S1 [i] intercambiar valores de S1 [i] y S1 [j1] salida S2 [S1 [i] + S1 [j1]] j2: = j2 + S2 [i] intercambiar valores de S2 [i] y S2 [j2] salida S1 [S2 [i] + S2 [j2]] end while
Aunque el algoritmo requirió el mismo número de operaciones por byte de salida, existe un mayor paralelismo que RC4, proporcionando una posible mejora de la velocidad.
Aunque más fuerte que RC4, este algoritmo también ha sido atacado, con Alexander Maximov [57] y un equipo de NEC [58] desarrollando formas de distinguir su salida de una secuencia verdaderamente aleatoria.
VMPC
La Composición de Permutación Variablemente Modificada (VMPC) es otra variante de RC4. [59] Utiliza un programa de claves similar al RC4, con j: = S [(j + S [i] + tecla [i mod keylength]) mod 256] iterando 3 × 256 = 768 veces en lugar de 256, y con 768 iteraciones adicionales opcionales para incorporar un vector inicial. La función de generación de salida opera de la siguiente manera:
Toda la aritmética se realiza en módulo 256.yo: = 0mientras se genera la salida: a: = S [i] j: = S [j + a] salida S [S [S [j] + 1]] Intercambia S [i] y S [j] ( b: = S [j]; S [i]: = b; S [j]: = a) ) yo: = yo + 1mientras tanto
Esto fue atacado en los mismos documentos que RC4A y se puede distinguir dentro de 2 38 bytes de salida. [60] [58]
RC4 +
RC4 + es una versión modificada de RC4 con un programa de teclas de tres fases más complejo (tarda aproximadamente tres veces más que RC4, o lo mismo que RC4-drop512), y una función de salida más compleja que realiza cuatro búsquedas adicionales en el S matriz para cada byte de salida, tardando aproximadamente 1,7 veces más que el RC4 básico. [61]
Todo el módulo aritmético 256. << y >> son desplazamiento a la izquierda y a la derecha, ⊕ es OR exclusivo mientras GeneratingOutput: yo: = yo + 1 a: = S [i] j: = j + a Intercambia S [i] y S [j] ( b: = S [j]; S [j]: = S [i]; S [i]: = b; ) c: = S [i << 5 ⊕ j >> 3] + S [j << 5 ⊕ i >> 3] salida (S [a + b] + S [c⊕0xAA]) ⊕ S [j + b] end while
Este algoritmo no se ha analizado de forma significativa.
Spritz
En 2014, Ronald Rivest dio una charla y coescribió un artículo [14] sobre un rediseño actualizado llamado Spritz . Se publicó un acelerador de hardware de Spritz en Secrypt, 2016 [62] y muestra que debido a las múltiples llamadas anidadas requeridas para producir bytes de salida, Spritz funciona bastante lentamente en comparación con otras funciones hash como SHA-3 y la implementación de hardware más conocida de RC4. .
El algoritmo es: [14]
Toda la aritmética se realiza en módulo 256 mientras se genera la salida: yo: = yo + w j: = k + S [j + S [i]] k: = k + i + S [j] intercambiar valores de S [i] y S [j] salida z: = S [j + S [i + S [z + k]]] end while
El valor w , es relativamente primo para el tamaño de la matriz S. Entonces, después de 256 iteraciones de este ciclo interno, el valor i (incrementado en w en cada iteración) ha tomado todos los valores posibles 0 ... 255, y cada byte en la matriz S se ha intercambiado al menos una vez.
Al igual que otras funciones de esponja , Spritz se puede utilizar para construir una función hash criptográfica, un generador de bits aleatorios determinista ( DRBG ), un algoritmo de cifrado que admita cifrado autenticado con datos asociados (AEAD), etc. [14]
En 2016, Banik e Isobe propusieron un ataque que puede distinguir a Spritz del ruido aleatorio. [63]
Protocolos basados en RC4
- WEP
- WPA (algoritmo predeterminado, pero se puede configurar para usar AES-CCMP en lugar de RC4)
- Cifrado del protocolo BitTorrent
- Microsoft Office XP (implementación insegura ya que nonce permanece sin cambios cuando los documentos se modifican [64] )
- Cifrado punto a punto de Microsoft
- Seguridad de la capa de transporte / Capa de sockets seguros (era opcional y luego el uso de RC4 estaba prohibido en RFC 7465)
- Secure Shell (opcionalmente)
- Protocolo de escritorio remoto (opcional)
- Kerberos (opcionalmente)
- SASL Mechanism Digest-MD5 (opcionalmente, histórico , obsoleto en RFC 6331)
- Gpcode.AK , un virus informático de principios de junio de 2008 para Microsoft Windows, que toma como rehenes documentos para obtener un rescate ocultándolos con cifrado RC4 y RSA-1024
- Skype (en forma modificada) [65]
Cuando un protocolo está marcado con "(opcionalmente)", RC4 es uno de los múltiples cifrados que el sistema puede configurar para usar.
Ver también
- TEA , Block TEA también conocido como eXtended TEA y Corrected Block TEA : una familia de cifrados en bloque que, como RC4, están diseñados para ser muy simples de implementar.
- Estándar de cifrado avanzado
- CipherSabre
Referencias
- ^ P. Prasithsangaree y P. Krishnamurthy (2003). "Análisis del consumo de energía de los algoritmos RC4 y AES en LAN inalámbricas" (PDF) . Archivado desde el original (PDF) el 3 de diciembre de 2013. Cite journal requiere
|journal=
( ayuda ) - ^ "Puntos de referencia de Crypto ++ 5.6.0" . Consultado el 22 de septiembre de 2015 .
- ^ a b Andrei Popov (febrero de 2015). Prohibir las suites de cifrado RC4 . doi : 10.17487 / RFC7465 . RFC 7465 .
- ^ Lucian Constantin (14 de mayo de 2014). "Microsoft continúa el plan de eliminación de cifrado RC4 con actualizaciones de seguridad .NET" . ComputerWorld .
- ^ J. Katz; Y. Lindell (2014), Introducción a la criptografía moderna , Chapman y Hall / CRC, p. 77
- ^ a b c John Leyden (6 de septiembre de 2013). "Ese desgarrador de criptomonedas de la NSA: ¿los fantasmas han aplastado a RC4?" . El registro .
- ^ "Configuraciones recomendadas de TLS del lado del servidor de seguridad de Mozilla" . Mozilla . Consultado el 3 de enero de 2015 .
- ^ "Aviso de seguridad 2868725: Recomendación para deshabilitar RC4" . Microsoft. 12 de noviembre de 2013 . Consultado el 4 de diciembre de 2013 .
- ^ Preguntas frecuentes de Rivest
- ^ "Gracias Bob Anderson" . Cypherpunks (lista de correo). 9 de septiembre de 1994. Archivado desde el original el 22 de julio de 2001 . Consultado el 28 de mayo de 2007 .
- ^ Bob Jenkins (15 de septiembre de 1994). "¿Re: RC4?" . Grupo de noticias : sci.crypt . Usenet: [email protected] .
- ^ "Páginas del manual: arc4random" . 5 de junio de 2013 . Consultado el 2 de febrero de 2018 .
- ^ 6.857 Seguridad informática y de redes, primavera de 2008: conferencias y folletos
- ^ a b c d Rivest, Ron; Schuldt, Jacob (27 de octubre de 2014). "Spritz: una función de cifrado y hash de flujo esponjoso similar a RC4" (PDF) . Consultado el 26 de octubre de 2014 .
- ^ "OpenBSD 5.5" . Consultado el 21 de septiembre de 2014 .
- ^ deraadt , ed. (21 de julio de 2014). "libc / crypt / arc4random.c" . Referencia cruzada BSD, OpenBSD src / lib / . Consultado el 13 de enero de 2015 .
Generador de números aleatorios basado en ChaCha para OpenBSD.
- ^ riastradh, ed. (16 de noviembre de 2014). "libc / gen / arc4random.c" . Referencia cruzada BSD, NetBSD src / lib / . Consultado el 13 de enero de 2015 .
API arc4random (3) heredada de OpenBSD reimplementada usando ChaCha20 PRF, con estado por subproceso.
- ^ "arc4random - Páginas del manual de NetBSD" . Consultado el 6 de enero de 2015 .
- ^ "Actualización del módulo arc4random de OpenBSD y LibreSSL" . Consultado el 6 de enero de 2016 .
- ^ "arc4random (3)" . OpenBSD.
- ^ Bartosz Zoltak. "VMPC-R: generador de números pseudoaleatorios criptográficamente seguro, alternativa a RC4". 2010?
- ^ Chefranov, AG "Mejora del período RC4 de generador de números pseudoaleatorios " . 2006.
- ^ a b Itsik Mantin, Adi Shamir (2001). "Un ataque práctico a la radiodifusión RC4" (PDF) : 152-164. Parámetro desconocido
|conference=
ignorado ( ayuda );Cite journal requiere|journal=
( ayuda )Mantenimiento de CS1: utiliza el parámetro de autores ( enlace ) - ^ "Respuesta de seguridad RSA a las debilidades en el algoritmo de programación de claves de RC4" . Laboratorios RSA. 1 de septiembre de 2001.
- ^ Sklyarov, Dmitry (2004). Claves ocultas para intrusiones de software y entrada no autorizada . Publicación de lista A. págs. 92–93. ISBN 978-1931769303.
- ^ "ssl - ¿Cifras más seguras para usar con BEAST? (Explotación TLS 1.0) He leído que RC4 es inmune - Fallo del servidor" . serverfault.com .
- ^ Isobe, Takanori; Ohigashi, Toshihiro (10 a 13 de marzo de 2013). "Seguridad de RC4 Stream Cipher" . Universidad de Hiroshima . Consultado el 27 de octubre de 2014 .
- ^ Pouyan Sepehrdad; Serge Vaudenay; Martin Vuagnoux (2011). Descubrimiento y explotación de nuevos sesgos en RC4 . Apuntes de conferencias en informática . 6544 . págs. 74–91. doi : 10.1007 / 978-3-642-19574-7_5 . ISBN 978-3-642-19573-0.
- ^ Green, Matthew (12 de marzo de 2013). "Ataque de la semana: RC4 está algo roto en TLS" . Ingeniería de Criptografía . Consultado el 12 de marzo de 2013 .
- ^ Nadhem AlFardan; Dan Bernstein; Kenny Paterson; Bertram Poettering; Jacob Schuldt. "Sobre la seguridad de RC4 en TLS" . Universidad Royal Holloway de Londres . Consultado el 13 de marzo de 2013 .
- ^ Andrew Roos. Una clase de claves débiles en el cifrado de flujo RC4. Dos publicaciones en sci.crypt, message-id [email protected] y [email protected], 1995.
- ^ Goutam Paul, Siddheshwar Rathi y Subhamoy Maitra. En el sesgo no despreciable del primer byte de salida de RC4 hacia los primeros tres bytes de la clave secreta. Actas del Taller internacional sobre codificación y criptografía (WCC) 2007, páginas 285–294 y Designs, Codes and Cryptography Journal, páginas 123–134, vol. 49, no. 1-3, diciembre de 2008.
- ^ Goutam Paul y Subhamoy Maitra. La permutación después de la programación de claves RC4 revela la clave secreta. SAC 2007, páginas 360–377, vol. 4876, Lecture Notes in Computer Science , Springer.
- ^ Eli Biham y Yaniv Carmeli. Reconstrucción eficiente de llaves RC4 de estados internos. FSE 2008, páginas 270–288, vol. 5086, Lecture Notes in Computer Science, Springer.
- ^ Mete Akgun, Pinar Kavak, Huseyin Demirci. Nuevos resultados en el algoritmo de programación clave de RC4. INDOCRYPT 2008, páginas 40–52, vol. 5365, Lecture Notes in Computer Science, Springer.
- ^ Riddhipratim Basu, Subhamoy Maitra, Goutam Paul y Tanmoy Talukdar. En algunas secuencias del índice pseudoaleatorio secreto j en la programación de claves RC4. Actas del 18º Simposio Internacional de Álgebra Aplicada, Algoritmos Algebraicos y Códigos de Corrección de Errores (AAECC), 8-12 de junio de 2009, Tarragona, España, páginas 137-148, vol. 5527, Lecture Notes in Computer Science, Springer.
- ^ Subhamoy Maitra y Goutam Paul. Nueva forma de sesgo de permutación y fuga de clave secreta en bytes de flujo de clave de RC4. Actas del 15º taller de cifrado rápido de software (FSE), 10-13 de febrero de 2008, Lausana, Suiza, páginas 253-269, vol. 5086, Lecture Notes in Computer Science, Springer.
- ^ Souradyuti Paul , Bart Preneel . "Análisis de estados predictivos no fortuitos del generador de flujo de claves RC4" (PDF) : 52–67. Parámetro desconocido
|conference=
ignorado ( ayuda );Cite journal requiere|journal=
( ayuda )Mantenimiento de CS1: utiliza el parámetro de autores ( enlace ) - ^ Scott R. Fluhrer, David A. McGrew. "Análisis estadístico del supuesto generador de flujo de claves RC4" (PDF) : 19–30. Archivado desde el original (PDF) el 2 de mayo de 2014. Parámetro desconocido
|conference=
ignorado ( ayuda );Cite journal requiere|journal=
( ayuda )Mantenimiento de CS1: utiliza el parámetro de autores ( enlace ) - ^ Basu, Riddhipratim; Ganguly, Shirshendu; Maitra, Subhamoy; Paul, Goutam (2008). "Una caracterización completa de la evolución del algoritmo de generación pseudoaleatoria RC4". Revista de Criptología Matemática . 2 (3): 257–289. doi : 10.1515 / JMC.2008.012 . S2CID 9613837 .
- ^ Fluhrer, Scott R .; Mantin, Itsik; Shamir, Adi (2001). "Debilidades en el algoritmo de programación clave de RC4" . Áreas seleccionadas en criptografía : 1–24. Archivado desde el original el 2 de junio de 2004.
- ^ "Tecnología provisional para la seguridad de LAN inalámbrica: WPA para reemplazar WEP mientras la industria desarrolla un nuevo estándar de seguridad" . Archivado desde el original el 9 de julio de 2012.
- ^ "RC4-drop (nbytes) en la base de datos de nombres de algoritmos criptográficos estándar " .
- ^ Rivest, Ron. "Respuesta de seguridad RSA a las debilidades en el algoritmo de programación de claves de RC4" .
- ^ A. Klein, Ataques al cifrado de flujo RC4, diseños, códigos y criptografía (2008) 48: 269-286
- ^ Erik Tews, Ralf-Philipp Weinmann, Andrei Pyshkin. Rompiendo WEP de 104 bits en menos de un minuto .
- ^ Souradyuti Paul y Bart Preneel , una nueva debilidad en el generador de flujo de claves RC4 y un enfoque para mejorar la seguridad del cifrado. Cifrado de software rápido - FSE 2004, pp245 - 259 (PDF) .
- ^ John Leyden (15 de marzo de 2013). "La criptografía de la cookie HTTPS se desmorona de nuevo en manos de los expertos en estadísticas" . El registro .
- ^ AlFardan; et al. (8 de julio de 2013). "Sobre la seguridad de RC4 en TLS y WPA" (PDF) . Grupo de seguridad de la información, Royal Holloway, Universidad de Londres.
- ^ "Sobre la seguridad de RC4 en TLS y WPA" . Grupo de seguridad de la información, Royal Holloway, Universidad de Londres . Consultado el 6 de septiembre de 2013 . (sitio web)
- ^ "RC4 debe morir" .
- ^ "Sesiones informativas - 26 y 27 de marzo" . 2015 . Consultado el 19 de noviembre de 2016 .
- ^ "Atacar SSL al usar RC4" (PDF) . 2015 . Consultado el 19 de noviembre de 2016 .
- ^ Mathy Vanhoef y Frank Piessens (9 de agosto de 2015). "RC4 NOMORE: Exploit de recuperación y monitoreo de numerosas ocurrencias" .Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Ilya Mironov (1 de junio de 2002), "(Not So) Random Shuffles of RC4" , Advances in Cryptology - CRYPTO 2002 (PDF) , Lecture Notes in Computer Science, 2442 , Springer-Verlag, págs. 304–319, doi : 10.1007 / 3-540-45708-9_20 , ISBN 978-3-540-44050-5, Cryptology ePrint Archive: Report 2002/067 , consultado el 4 de noviembre de 2011
- ^ Souradyuti Paul ; Bart Preneel (2004), "Una nueva debilidad en el generador de flujo de claves RC4 y un enfoque para mejorar la seguridad del cifrado" , Fast Software Encryption, FSE 2004 , Lecture Notes in Computer Science, 3017 , Springer-Verlag, págs. 245– 259, doi : 10.1007 / 978-3-540-25937-4_16 , ISBN 978-3-540-22171-5, consultado el 4 de noviembre de 2011
- ^ Alexander Maximov (22 de febrero de 2007), Two Linear Distinguishing Attacks on VMPC y RC4A and Weakness of RC4 Family of Stream Ciphers , Cryptology ePrint Archive: Report 2007/070 , consultado el 4 de noviembre de 2011
- ^ a b Yukiyasu Tsunoo; Teruo Saito; Hiroyasu Kubo; Maki Shigeri; Tomoyasu Suzaki; Takeshi Kawabata (2005), El ataque distintivo más eficiente contra VMPC y RC4A (PDF)
- ^ Bartosz Zoltak (2004), "VMPC One-Way Function and Stream Cipher" (PDF) , Fast Software Encryption, FSE 2004 (PDF) , Lecture Notes in Computer Science, 3017 , Springer-Verlag, págs. 210–225, CiteSeerX 10.1 .1.469.8297 , doi : 10.1007 / 978-3-540-25937-4_14 , ISBN 978-3-540-22171-5, consultado el 4 de noviembre de 2011
- ^ "CryptoLounge: RC4A" . Archivado desde el original el 1 de octubre de 2011 . Consultado el 4 de noviembre de 2011 .
- ^ Subhamoy Maitra; Goutam Paul (19 de septiembre de 2008), "Análisis de RC4 y propuesta de capas adicionales para un mejor margen de seguridad" , Progreso en criptología - INDOCRYPT 2008 (PDF) , Lecture Notes in Computer Science, 5365 , Springer-Verlag, págs. 27–39 , CiteSeerX 10.1.1.215.7178 , doi : 10.1007 / 978-3-540-89754-5_3 , ISBN 978-3-540-89753-8, Cryptology ePrint Archive: Report 2008/396 , consultado el 4 de noviembre de 2011
- ^ Debjyoti Bhattacharjee; Anupam Chattopadhyay. "Acelerador de hardware para Stream Cipher Spritz" (PDF) . Secrypt 2016 . Consultado el 29 de julio de 2016 .
- ^ Banik, Subhadeep; Isobe, Takanori (20 de marzo de 2016). Peyrin, Thomas (ed.). Criptoanálisis del cifrado de flujo completo de Spritz . Apuntes de conferencias en informática. Springer Berlín Heidelberg. págs. 63–77. doi : 10.1007 / 978-3-662-52993-5_4 . ISBN 9783662529928. S2CID 16296315 .
- ^ Hongjun Wu, "El mal uso de RC4 en Microsoft Word y Excel". https://eprint.iacr.org/2005/007
- ^ "Procedimiento de cifrado de Skype parcialmente expuesto" . www.h-online.com. Archivado desde el original el 11 de julio de 2010 . Consultado el 8 de julio de 2010 .
Otras lecturas
- Paul, Goutam; Subhamoy Maitra (2011). RC4 Stream Cipher y sus variantes . Prensa CRC. ISBN 9781439831359.
- Schneier, Bruce (1995). "Capítulo 17 - Otros cifrados de flujo y generadores de secuencia aleatoria reales" . Criptografía aplicada: protocolos, algoritmos y código fuente en C (2ª ed.). Wiley. ISBN 978-0471117094.
enlaces externos
- Publicación original del algoritmo RC4 en la lista de correo de Cypherpunks , versión archivada
- RFC 4345 - Modos Arcfour mejorados para el protocolo de capa de transporte Secure Shell (SSH)
- RFC 6229 - Vectores de prueba para Stream Cipher RC4
- RFC 7465 - Prohibición de conjuntos de cifrado RC4
- Kaukonen; Thayer. Un algoritmo de cifrado de cifrado de flujo "Arcfour" . Proyecto de identificación-kaukonen-cipher-arcfour-03.
- Entrada de SCAN para RC4
- Ataques a RC4 en Wayback Machine (archivado el 21 de febrero de 2015)
- Respuesta de seguridad RSA a las debilidades en el algoritmo de programación de claves de RC4
- RC4 en WEP
- (in) Seguridad del algoritmo WEP
- Fluhrer; Mantin; Shamir (verano-otoño de 2002). "Ataques a RC4 y WEP" . CryptoBytes . 5 (2). Archivado desde el original (PostScript) el 2 de enero de 2015.