fbpx
Wikipedia

RC4

In cryptography, RC4 (Rivest Cipher 4, also known as ARC4 or ARCFOUR, meaning Alleged RC4, see below) is a stream cipher. While it is remarkable for its simplicity and speed in software, multiple vulnerabilities have been discovered in RC4, rendering it insecure.[3][4] It is especially vulnerable when the beginning of the output keystream is not discarded, or when nonrandom or related keys are used. Particularly problematic uses of RC4 have led to very insecure protocols such as WEP.[5]

RC4
General
DesignersRon Rivest (RSA Security)
First publishedLeaked in 1994
(designed in 1987)
Cipher detail
Key sizes40–2048 bits
State size2064 bits (1684 effective)
Rounds1
Speed7 cycles per byte on original Pentium[1]
Modified Alleged RC4 on Intel Core 2: 13.9 cycles per byte[2]

As of 2015, there is speculation that some state cryptologic agencies may possess the capability to break RC4 when used in the TLS protocol.[6] IETF has published RFC 7465 to prohibit the use of RC4 in TLS;[3] Mozilla and Microsoft have issued similar recommendations.[7][8]

A number of attempts have been made to strengthen RC4, notably Spritz, RC4A, VMPC, and RC4+.

History Edit

RC4 was designed by Ron Rivest of RSA Security in 1987. While it is officially termed "Rivest Cipher 4", the RC acronym is alternatively understood to stand for "Ron's Code"[9] (see also RC2, RC5 and RC6).

RC4 was initially a trade secret, but in September 1994, a description of it was anonymously posted to the Cypherpunks mailing list.[10] It was soon posted on the sci.crypt newsgroup, where it was broken within days by Bob Jenkins.[11] From there, it spread to many sites on the Internet. The leaked code was confirmed to be genuine, as its output was found to match that of proprietary software using licensed RC4. Because the algorithm is known, it is no longer a trade secret. The name RC4 is trademarked, so RC4 is often referred to as ARCFOUR or ARC4 (meaning alleged RC4)[12] to avoid trademark problems. RSA Security has never officially released the algorithm; Rivest has, however, linked to the English Wikipedia article on RC4 in his own course notes in 2008[13] and confirmed the history of RC4 and its code in a 2014 paper by him.[14]

RC4 became part of some commonly used encryption protocols and standards, such as WEP in 1997 and WPA in 2003/2004 for wireless cards; and SSL in 1995 and its successor TLS in 1999, until it was prohibited for all versions of TLS by RFC 7465 in 2015, due to the RC4 attacks weakening or breaking RC4 used in SSL/TLS. The main factors in RC4's success over such a wide range of applications have been its speed and simplicity: efficient implementations in both software and hardware were very easy to develop.

Description Edit

RC4 generates a pseudorandom stream of bits (a keystream). As with any stream cipher, these can be used for encryption by combining it with the plaintext using bitwise exclusive or; decryption is performed the same way (since exclusive or with given data is an involution). This is similar to the one-time pad, except that generated pseudorandom bits, rather than a prepared stream, are used.

To generate the keystream, the cipher makes use of a secret internal state which consists of two parts:

  1. A permutation of all 256 possible bytes (denoted "S" below).
  2. Two 8-bit index-pointers (denoted "i" and "j").

The permutation is initialized with a variable-length key, typically between 40 and 2048 bits, using the key-scheduling algorithm (KSA). Once this has been completed, the stream of bits is generated using the pseudo-random generation algorithm (PRGA).

Key-scheduling algorithm (KSA) Edit

The key-scheduling algorithm is used to initialize the permutation in the array "S". "keylength" is defined as the number of bytes in the key and can be in the range 1 ≤ keylength ≤ 256, typically between 5 and 16, corresponding to a key length of 40–128 bits. First, the array "S" is initialized to the identity permutation. S is then processed for 256 iterations in a similar way to the main PRGA, but also mixes in bytes of the key at the same time.

for i from 0 to 255 S[i] := i endfor j := 0 for i from 0 to 255 j := (j + S[i] + key[i mod keylength]) mod 256 swap values of S[i] and S[j] endfor 

Pseudo-random generation algorithm (PRGA) Edit

 
The lookup stage of RC4. The output byte is selected by looking up the values of S[i] and S[j], adding them together modulo 256, and then using the sum as an index into S; S(S[i] + S[j]) is used as a byte of the key stream K.

For as many iterations as are needed, the PRGA modifies the state and outputs a byte of the keystream. In each iteration, the PRGA:

  • increments i;
  • looks up the ith element of S, S[i], and adds that to j;
  • exchanges the values of S[i] and S[j], then uses the sum S[i] + S[j] (modulo 256) as an index to fetch a third element of S (the keystream value K below);
  • then bitwise exclusive ORed (XORed) with the next byte of the message to produce the next byte of either ciphertext or plaintext.

Each element of S is swapped with another element at least once every 256 iterations.

i := 0 j := 0 while GeneratingOutput: i := (i + 1) mod 256 j := (j + S[i]) mod 256 swap values of S[i] and S[j] t := (S[i] + S[j]) mod 256 K := S[t] output K endwhile 

Thus, this produces a stream of K[0], K[1], ... which are XORed with the plaintext to obtain the ciphertext. So ciphertext[l] = plaintext[l] ⊕ K[l].

RC4-based random number generators Edit

Several operating systems include arc4random, an API originating in OpenBSD providing access to a random number generator originally based on RC4. In OpenBSD 5.5, released in May 2014, arc4random was modified to use ChaCha20.[15][16] The implementations of arc4random in FreeBSD, NetBSD[17][18] and Linux's libbsd[19] also use ChaCha20. According to manual pages shipped with the operating system, in the 2017 release of macOS and iOS operating systems, Apple replaced RC4 with AES in its implementation of arc4random. Man pages for the new arc4random include the backronym "A Replacement Call for Random" for ARC4 as a mnemonic,[20] as it provides better random data than rand() does.

Proposed new random number generators are often compared to the RC4 random number generator.[21][22]

Several attacks on RC4 are able to distinguish its output from a random sequence.[23]

Implementation Edit

Many stream ciphers are based on linear-feedback shift registers (LFSRs), which, while efficient in hardware, are less so in software. The design of RC4 avoids the use of LFSRs and is ideal for software implementation, as it requires only byte manipulations. It uses 256 bytes of memory for the state array, S[0] through S[255], k bytes of memory for the key, key[0] through key[k−1], and integer variables, i, j, and K. Performing a modular reduction of some value modulo 256 can be done with a bitwise AND with 255 (which is equivalent to taking the low-order byte of the value in question).

Test vectors Edit

These test vectors are not official, but convenient for anyone testing their own RC4 program. The keys and plaintext are ASCII, the keystream and ciphertext are in hexadecimal.

Key Keystream Plaintext Ciphertext
Key EB9F7781B734CA72A719 Plaintext BBF316E8D940AF0AD3
Wiki 6044DB6D41B7 pedia 1021BF0420
Secret 04D46B053CA87B59 Attack at dawn 45A01F645FC35B383552544B9BF5

Security Edit

Unlike a modern stream cipher (such as those in eSTREAM), RC4 does not take a separate nonce alongside the key. This means that if a single long-term key is to be used to securely encrypt multiple streams, the protocol must specify how to combine the nonce and the long-term key to generate the stream key for RC4. One approach to addressing this is to generate a "fresh" RC4 key by hashing a long-term key with a nonce. However, many applications that use RC4 simply concatenate key and nonce; RC4's weak key schedule then gives rise to related-key attacks, like the Fluhrer, Mantin and Shamir attack (which is famous for breaking the WEP standard).[24]

Because RC4 is a stream cipher, it is more malleable than common block ciphers. If not used together with a strong message authentication code (MAC), then encryption is vulnerable to a bit-flipping attack. The cipher is also vulnerable to a stream cipher attack if not implemented correctly.[25]

It is noteworthy, however, that RC4, being a stream cipher, was for a period of time the only common cipher that was immune[26] to the 2011 BEAST attack on TLS 1.0. The attack exploits a known weakness in the way cipher-block chaining mode is used with all of the other ciphers supported by TLS 1.0, which are all block ciphers.

In March 2013, there were new attack scenarios proposed by Isobe, Ohigashi, Watanabe and Morii,[27] as well as AlFardan, Bernstein, Paterson, Poettering and Schuldt that use new statistical biases in RC4 key table[28] to recover plaintext with large number of TLS encryptions.[29][30]

The use of RC4 in TLS is prohibited by RFC 7465 published in February 2015.

Roos' biases and key reconstruction from permutation Edit

In 1995, Andrew Roos experimentally observed that the first byte of the keystream is correlated with the first three bytes of the key, and the first few bytes of the permutation after the KSA are correlated with some linear combination of the key bytes.[31] These biases remained unexplained until 2007, when Goutam Paul, Siddheshwar Rathi and Subhamoy Maitra[32] proved the keystream–key correlation and, in another work, Goutam Paul and Subhamoy Maitra[33] proved the permutation–key correlations. The latter work also used the permutation–key correlations to design the first algorithm for complete key reconstruction from the final permutation after the KSA, without any assumption on the key or initialization vector. This algorithm has a constant probability of success in a time, which is the square root of the exhaustive key search complexity. Subsequently, many other works have been performed on key reconstruction from RC4 internal states.[34][35][36] Subhamoy Maitra and Goutam Paul[37] also showed that the Roos-type biases still persist even when one considers nested permutation indices, like S[S[i]] or S[S[S[i]]]. These types of biases are used in some of the later key reconstruction methods for increasing the success probability.

Biased outputs of the RC4 Edit

The keystream generated by the RC4 is biased to varying degrees towards certain sequences, making it vulnerable to distinguishing attacks. The best such attack is due to Itsik Mantin and Adi Shamir, who showed that the second output byte of the cipher was biased toward zero with probability 1/128 (instead of 1/256). This is due to the fact that if the third byte of the original state is zero, and the second byte is not equal to 2, then the second output byte is always zero. Such bias can be detected by observing only 256 bytes.[23]

Souradyuti Paul and Bart Preneel of COSIC showed that the first and the second bytes of the RC4 were also biased. The number of required samples to detect this bias is 225 bytes.[38]

Scott Fluhrer and David McGrew also showed attacks that distinguished the keystream of the RC4 from a random stream given a gigabyte of output.[39]

The complete characterization of a single step of RC4 PRGA was performed by Riddhipratim Basu, Shirshendu Ganguly, Subhamoy Maitra, and Goutam Paul.[40] Considering all the permutations, they proved that the distribution of the output is not uniform given i and j, and as a consequence, information about j is always leaked into the output.

Fluhrer, Mantin and Shamir attack Edit

In 2001, a new and surprising discovery was made by Fluhrer, Mantin and Shamir: over all the possible RC4 keys, the statistics for the first few bytes of output keystream are strongly non-random, leaking information about the key. If the nonce and long-term key are simply concatenated to generate the RC4 key, this long-term key can be discovered by analysing a large number of messages encrypted with this key.[41] This and related effects were then used to break the WEP ("wired equivalent privacy") encryption used with 802.11 wireless networks. This caused a scramble for a standards-based replacement for WEP in the 802.11 market and led to the IEEE 802.11i effort and WPA.[42]

Protocols can defend against this attack by discarding the initial portion of the keystream. Such a modified algorithm is traditionally called "RC4-drop[n]", where n is the number of initial keystream bytes that are dropped. The SCAN default is n = 768 bytes, but a conservative value would be n = 3072 bytes.[43]

The Fluhrer, Mantin and Shamir attack does not apply to RC4-based SSL, since SSL generates the encryption keys it uses for RC4 by hashing, meaning that different SSL sessions have unrelated keys.[44]

Klein's attack Edit

In 2005, Andreas Klein presented an analysis of the RC4 stream cipher, showing more correlations between the RC4 keystream and the key.[45] Erik Tews, Ralf-Philipp Weinmann, and Andrei Pychkine used this analysis to create aircrack-ptw, a tool that cracks 104-bit RC4 used in 128-bit WEP in under a minute.[46] Whereas the Fluhrer, Mantin, and Shamir attack used around 10 million messages, aircrack-ptw can break 104-bit keys in 40,000 frames with 50% probability, or in 85,000 frames with 95% probability.

Combinatorial problem Edit

A combinatorial problem related to the number of inputs and outputs of the RC4 cipher was first posed by Itsik Mantin and Adi Shamir in 2001, whereby, of the total 256 elements in the typical state of RC4, if x number of elements (x ≤ 256) are only known (all other elements can be assumed empty), then the maximum number of elements that can be produced deterministically is also x in the next 256 rounds. This conjecture was put to rest in 2004 with a formal proof given by Souradyuti Paul and Bart Preneel.[47]

Royal Holloway attack Edit

In 2013, a group of security researchers at the Information Security Group at Royal Holloway, University of London reported an attack that can become effective using only 234 encrypted messages.[48][49][50] While yet not a practical attack for most purposes, this result is sufficiently close to one that it has led to speculation that it is plausible that some state cryptologic agencies may already have better attacks that render RC4 insecure.[6] Given that, as of 2013, a large amount of TLS traffic uses RC4 to avoid attacks on block ciphers that use cipher block chaining, if these hypothetical better attacks exist, then this would make the TLS-with-RC4 combination insecure against such attackers in a large number of practical scenarios.[6]

In March 2015, researcher to Royal Holloway announced improvements to their attack, providing a 226 attack against passwords encrypted with RC4, as used in TLS.[51]

Bar mitzvah attack Edit

At the Black Hat Asia 2015 Conference, Itsik Mantin presented another attack against SSL using RC4 cipher.[52][53]

NOMORE attack Edit

In 2015, security researchers from KU Leuven presented new attacks against RC4 in both TLS and WPA-TKIP.[54] Dubbed the Numerous Occurrence MOnitoring & Recovery Exploit (NOMORE) attack, it is the first attack of its kind that was demonstrated in practice. Their attack against TLS can decrypt a secure HTTP cookie within 75 hours. The attack against WPA-TKIP can be completed within an hour and allows an attacker to decrypt and inject arbitrary packets.

RC4 variants Edit

As mentioned above, the most important weakness of RC4 comes from the insufficient key schedule; the first bytes of output reveal information about the key. This can be corrected by simply discarding some initial portion of the output stream.[55] This is known as RC4-dropN, where N is typically a multiple of 256, such as 768 or 1024.

A number of attempts have been made to strengthen RC4, notably Spritz, RC4A, VMPC, and RC4+.

RC4A Edit

Souradyuti Paul and Bart Preneel have proposed an RC4 variant, which they call RC4A.[56]

RC4A uses two state arrays S1 and S2, and two indexes j1 and j2. Each time i is incremented, two bytes are generated:

  1. First, the basic RC4 algorithm is performed using S1 and j1, but in the last step, S1[i]+S1[j1] is looked up in S2.
  2. Second, the operation is repeated (without incrementing i again) on S2 and j2, and S1[S2[i]+S2[j2]] is output.

Thus, the algorithm is:

All arithmetic is performed modulo 256 i := 0 j1 := 0 j2 := 0 while GeneratingOutput: i := i + 1 j1 := j1 + S1[i] swap values of S1[i] and S1[j1] output S2[S1[i] + S1[j1]] j2 := j2 + S2[i] swap values of S2[i] and S2[j2] output S1[S2[i] + S2[j2]] endwhile 

Although the algorithm required the same number of operations per output byte, there is greater parallelism than RC4, providing a possible speed improvement.

Although stronger than RC4, this algorithm has also been attacked, with Alexander Maximov[57] and a team from NEC[58] developing ways to distinguish its output from a truly random sequence.

VMPC Edit

Variably Modified Permutation Composition (VMPC) is another RC4 variant.[59] It uses similar key schedule as RC4, with j := S[(j + S[i] + key[i mod keylength]) mod 256] iterating 3 × 256 = 768 times rather than 256, and with an optional additional 768 iterations to incorporate an initial vector. The output generation function operates as follows:

All arithmetic is performed modulo 256. i := 0 while GeneratingOutput: a := S[i] j := S[j + a] output S[S[S[j] + 1]] Swap S[i] and S[j] (b := S[j]; S[i] := b; S[j] := a)) i := i + 1 endwhile 

This was attacked in the same papers as RC4A, and can be distinguished within 238 output bytes.[60][58]

RC4+ Edit

RC4+ is a modified version of RC4 with a more complex three-phase key schedule (taking about three times as long as RC4, or the same as RC4-drop512), and a more complex output function which performs four additional lookups in the S array for each byte output, taking approximately 1.7 times as long as basic RC4.[61]

All arithmetic modulo 256. << and >> are left and right shift,  is exclusive OR while GeneratingOutput: i := i + 1 a := S[i] j := j + a Swap S[i] and S[j] (b := S[j]; S[j] := S[i]; S[i] := b;) c := S[i<<5 ⊕ j>>3] + S[j<<5 ⊕ i>>3] output (S[a+b] + S[c⊕0xAA]) ⊕ S[j+b] endwhile 

This algorithm has not been analyzed significantly.

Spritz Edit

In 2014, Ronald Rivest gave a talk and co-wrote a paper[14] on an updated redesign called Spritz. A hardware accelerator of Spritz was published in Secrypt, 2016[62] and shows that due to multiple nested calls required to produce output bytes, Spritz performs rather slowly compared to other hash functions such as SHA-3 and the best known hardware implementation of RC4.

The algorithm is:[14]

All arithmetic is performed modulo 256 while GeneratingOutput: i := i + w j := k + S[j + S[i]] k := k + i + S[j] swap values of S[i] and S[j] output z := S[j + S[i + S[z + k]]] endwhile 

The value w, is relatively prime to the size of the S array. So after 256 iterations of this inner loop, the value i (incremented by w every iteration) has taken on all possible values 0...255, and every byte in the S array has been swapped at least once.

Like other sponge functions, Spritz can be used to build a cryptographic hash function, a deterministic random bit generator (DRBG), an encryption algorithm that supports authenticated encryption with associated data (AEAD), etc.[14]

In 2016, Banik and Isobe proposed an attack that can distinguish Spritz from random noise.[63]

RC4-based protocols Edit

Where a protocol is marked with "(optionally)", RC4 is one of multiple ciphers the system can be configured to use.

See also Edit

References Edit

  1. ^ P. Prasithsangaree; P. Krishnamurthy (2003). (PDF). GLOBECOM '03. IEEE. Archived from the original (PDF) on 3 December 2013.
  2. ^ "Crypto++ 5.6.0 Benchmarks". Retrieved 22 September 2015.
  3. ^ a b Andrei Popov (February 2015). Prohibiting RC4 Cipher Suites. doi:10.17487/RFC7465. RFC 7465.
  4. ^ Lucian Constantin (14 May 2014). "Microsoft continues RC4 encryption phase-out plan with .NET security updates". ComputerWorld.
  5. ^ J. Katz; Y. Lindell (2014), Introduction to Modern Cryptography, Chapman and Hall/CRC, p. 77.
  6. ^ a b c John Leyden (6 September 2013). "That earth-shattering NSA crypto-cracking: Have spooks smashed RC4?". The Register.
  7. ^ "Mozilla Security Server Side TLS Recommended Configurations". Mozilla. Retrieved 3 January 2015.
  8. ^ "Security Advisory 2868725: Recommendation to disable RC4". Microsoft. 12 November 2013. Retrieved 4 December 2013.
  9. ^ "Rivest FAQ".
  10. ^ . Cypherpunks (Mailing list). 9 September 1994. Archived from the original on 22 July 2001. Retrieved 28 May 2007.
  11. ^ Bob Jenkins (15 September 1994). "Re: RC4 ?". Newsgroup: sci.crypt. Usenet: 359qjg$55v$1@mhadg.production.compuserve.com.
  12. ^ "Manual Pages: arc4random". 5 June 2013. Retrieved 2 February 2018.
  13. ^ "6.857 Computer and Network Security Spring 2008: Lectures and Handouts".
  14. ^ a b c d Rivest, Ron; Schuldt, Jacob (27 October 2014). "Spritz – a spongy RC4-like stream cipher and hash function" (PDF). Retrieved 26 October 2014.
  15. ^ "OpenBSD 5.5". Retrieved 21 September 2014.
  16. ^ deraadt, ed. (21 July 2014). "libc/crypt/arc4random.c". BSD Cross Reference, OpenBSD src/lib/. Retrieved 13 January 2015. ChaCha based random number generator for OpenBSD.
  17. ^ riastradh, ed. (16 November 2014). "libc/gen/arc4random.c". BSD Cross Reference, NetBSD src/lib/. Retrieved 13 January 2015. Legacy arc4random(3) API from OpenBSD reimplemented using the ChaCha20 PRF, with per-thread state.
  18. ^ . Archived from the original on 6 July 2020. Retrieved 6 January 2015.
  19. ^ "Update arc4random module from OpenBSD and LibreSSL". Retrieved 6 January 2016.
  20. ^ "arc4random(3)". OpenBSD.
  21. ^ Bartosz Zoltak. "VMPC-R: Cryptographically Secure Pseudo-Random Number Generator, Alternative to RC4". 2010?
  22. ^ Chefranov, A. G. "Pseudo-Random Number Generator RC4 Period Improvement". 2006.
  23. ^ a b Itsik Mantin; Adi Shamir (2001). A Practical Attack on Broadcast RC4 (PDF). FSE 2001. pp. 152–164. doi:10.1007/3-540-45473-X_13.
  24. ^ "RSA Security Response to Weaknesses in Key Scheduling Algorithm of RC4". RSA Laboratories. 1 September 2001.
  25. ^ Sklyarov, Dmitry (2004). Hidden Keys to Software Break-Ins and Unauthorized Entry. A-List Publishing. pp. 92–93. ISBN 978-1931769303.
  26. ^ "ssl - Safest ciphers to use with the BEAST? (TLS 1.0 exploit) I've read that RC4 is immune". serverfault.com.
  27. ^ Isobe, Takanori; Ohigashi, Toshihiro (10–13 March 2013). "Security of RC4 Stream Cipher". Hiroshima University. Retrieved 27 October 2014.
  28. ^ Pouyan Sepehrdad; Serge Vaudenay; Martin Vuagnoux (2011). "Discovery and Exploitation of New Biases in RC4". Selected Areas in Cryptography. Lecture Notes in Computer Science. Vol. 6544. pp. 74–91. doi:10.1007/978-3-642-19574-7_5. ISBN 978-3-642-19573-0.
  29. ^ Green, Matthew (12 March 2013). "Attack of the week: RC4 is kind of broken in TLS". Cryptography Engineering. Retrieved 12 March 2013.
  30. ^ Nadhem AlFardan; Dan Bernstein; Kenny Paterson; Bertram Poettering; Jacob Schuldt. "On the Security of RC4 in TLS". Royal Holloway University of London. Retrieved 13 March 2013.
  31. ^ Andrew Roos. A Class of Weak Keys in the RC4 Stream Cipher. Two posts in sci.crypt, message-id 43u1eh$1j3@hermes.is.co.za and 44ebge$llf@hermes.is.co.za, 1995.
  32. ^ Goutam Paul, Siddheshwar Rathi and Subhamoy Maitra. On Non-negligible Bias of the First Output Byte of RC4 towards the First Three Bytes of the Secret Key. Proceedings of the International Workshop on Coding and Cryptography (WCC) 2007, pages 285–294 and Designs, Codes and Cryptography Journal, pages 123–134, vol. 49, no. 1-3, December 2008.
  33. ^ Goutam Paul and Subhamoy Maitra. Permutation after RC4 Key Scheduling Reveals the Secret Key. SAC 2007, pages 360–377, vol. 4876, Lecture Notes in Computer Science, Springer.
  34. ^ Eli Biham and Yaniv Carmeli. Efficient Reconstruction of RC4 Keys from Internal States. FSE 2008, pages 270–288, vol. 5086, Lecture Notes in Computer Science, Springer.
  35. ^ Mete Akgun, Pinar Kavak, Huseyin Demirci. New Results on the Key Scheduling Algorithm of RC4. INDOCRYPT 2008, pages 40–52, vol. 5365, Lecture Notes in Computer Science, Springer.
  36. ^ Riddhipratim Basu, Subhamoy Maitra, Goutam Paul and Tanmoy Talukdar. On Some Sequences of the Secret Pseudo-random Index j in RC4 Key Scheduling. Proceedings of the 18th International Symposium on Applied Algebra, Algebraic Algorithms and Error Correcting Codes (AAECC), 8–12 June 2009, Tarragona, Spain, pages 137–148, vol. 5527, Lecture Notes in Computer Science, Springer.
  37. ^ Subhamoy Maitra and Goutam Paul. New Form of Permutation Bias and Secret Key Leakage in Keystream Bytes of RC4. Proceedings of the 15th Fast Software Encryption (FSE) Workshop, 10–13 February 2008, Lausanne, Switzerland, pages 253–269, vol. 5086, Lecture Notes in Computer Science, Springer.
  38. ^ Souradyuti Paul; Bart Preneel. Analysis of Non-fortuitous Predictive States of the RC4 Keystream Generator (PDF). Indocrypt 2003. pp. 52–67.
  39. ^ Scott R. Fluhrer; David A. McGrew. (PDF). FSE 2000. pp. 19–30. Archived from the original (PDF) on 2 May 2014.
  40. ^ Basu, Riddhipratim; Ganguly, Shirshendu; Maitra, Subhamoy; Paul, Goutam (2008). "A Complete Characterization of the Evolution of RC4 Pseudo Random Generation Algorithm". Journal of Mathematical Cryptology. 2 (3): 257–289. doi:10.1515/JMC.2008.012. S2CID 9613837.
  41. ^ Fluhrer, Scott R.; Mantin, Itsik; Shamir, Adi (2001). . Selected Areas in Cryptography: 1–24. Archived from the original on 2 June 2004.
  42. ^ "Interim technology for wireless LAN security: WPA to replace WEP while industry develops new security standard". Archived from the original on 9 July 2012.
  43. ^ "RC4-drop(nbytes) in the Standard Cryptographic Algorithm Naming database".
  44. ^ Rivest, Ron. "RSA Security Response to Weaknesses in Key Scheduling Algorithm of RC4".
  45. ^ A. Klein, Attacks on the RC4 stream cipher, Designs, Codes and Cryptography (2008) 48:269–286.
  46. ^ Erik Tews, Ralf-Philipp Weinmann, Andrei Pyshkin. Breaking 104-bit WEP in under a minute.
  47. ^ Souradyuti Paul and Bart Preneel, A New Weakness in the RC4 Keystream Generator and an Approach to Improve the Security of the Cipher. Fast Software Encryption – FSE 2004, pp. 245–259.
  48. ^ John Leyden (15 March 2013). "HTTPS cookie crypto CRUMBLES AGAIN in hands of stats boffins". The Register.
  49. ^ AlFardan; et al. (8 July 2013). "On the Security of RC4 in TLS and WPA" (PDF). Information Security Group, Royal Holloway, University of London.
  50. ^ "On the Security of RC4 in TLS and WPA". Information Security Group, Royal Holloway, University of London. Retrieved 6 September 2013.
  51. ^ "RC4 must die".
  52. ^ "Briefings – March 26 & 27". 2015. Retrieved 19 November 2016.
  53. ^ "Attacking SSL when using RC4" (PDF). 2015. Retrieved 19 November 2016.
  54. ^ Mathy Vanhoef; Frank Piessens (9 August 2015). "RC4 NOMORE: Numerous Occurrence MOnitoring & Recovery Exploit".
  55. ^ Ilya Mironov (1 June 2002), "(Not So) Random Shuffles of RC4", Advances in Cryptology – CRYPTO 2002 (PDF), Lecture Notes in Computer Science, vol. 2442, Springer-Verlag, pp. 304–319, doi:10.1007/3-540-45708-9_20, ISBN 978-3-540-44050-5, Cryptology ePrint Archive: Report 2002/067, retrieved 4 November 2011
  56. ^ Souradyuti Paul; Bart Preneel (2004), "A New Weakness in the RC4 Keystream Generator and an Approach to Improve the Security of the Cipher", Fast Software Encryption, FSE 2004, Lecture Notes in Computer Science, vol. 3017, Springer-Verlag, pp. 245–259, doi:10.1007/978-3-540-25937-4_16, ISBN 978-3-540-22171-5, retrieved 4 November 2011
  57. ^ Alexander Maximov (22 February 2007), Two Linear Distinguishing Attacks on VMPC and RC4A and Weakness of RC4 Family of Stream Ciphers, Cryptology ePrint Archive: Report 2007/070, retrieved 4 November 2011
  58. ^ a b Yukiyasu Tsunoo; Teruo Saito; Hiroyasu Kubo; Maki Shigeri; Tomoyasu Suzaki; Takeshi Kawabata (2005), The Most Efficient Distinguishing Attack on VMPC and RC4A (PDF)
  59. ^ Bartosz Zoltak (2004), "VMPC One-Way Function and Stream Cipher" (PDF), Fast Software Encryption, FSE 2004 (PDF), Lecture Notes in Computer Science, vol. 3017, Springer-Verlag, pp. 210–225, CiteSeerX 10.1.1.469.8297, doi:10.1007/978-3-540-25937-4_14, ISBN 978-3-540-22171-5, retrieved 4 November 2011
  60. ^ . Archived from the original on 1 October 2011. Retrieved 4 November 2011.
  61. ^ Subhamoy Maitra; Goutam Paul (19 September 2008), "Analysis of RC4 and Proposal of Additional Layers for Better Security Margin", Progress in Cryptology – INDOCRYPT 2008 (PDF), Lecture Notes in Computer Science, vol. 5365, Springer-Verlag, pp. 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, retrieved 4 November 2011
  62. ^ Debjyoti Bhattacharjee; Anupam Chattopadhyay. "Hardware Accelerator for Stream Cipher Spritz" (PDF). Secrypt 2016. Retrieved 29 July 2016.
  63. ^ Banik, Subhadeep; Isobe, Takanori (20 March 2016). Peyrin, Thomas (ed.). Cryptanalysis of the Full Spritz Stream Cipher. Lecture Notes in Computer Science. Springer Berlin Heidelberg. pp. 63–77. doi:10.1007/978-3-662-52993-5_4. ISBN 9783662529928. S2CID 16296315.
  64. ^ Hongjun Wu, "The Misuse of RC4 in Microsoft Word and Excel". https://eprint.iacr.org/2005/007
  65. ^ . www.h-online.com. Archived from the original on 11 July 2010. Retrieved 8 July 2010.

Further reading Edit

  • Paul, Goutam; Subhamoy Maitra (2011). RC4 Stream Cipher and Its Variants. CRC Press. ISBN 9781439831359.
  • Schneier, Bruce (1995). "Chapter 17 – Other Stream Ciphers and Real Random-Sequence Generators". Applied Cryptography: Protocols, Algorithms, and Source Code in C (2nd ed.). Wiley. ISBN 978-0471117094.

External links Edit

  • Original posting of RC4 algorithm to Cypherpunks mailing list,
  • RFC 4345 – Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol
  • RFC 6229 – Test Vectors for the Stream Cipher RC4
  • RFC 7465 – Prohibiting RC4 Cipher Suites
  • Kaukonen; Thayer. A Stream Cipher Encryption Algorithm "Arcfour". I-D draft-kaukonen-cipher-arcfour-03.
  • SCAN's entry for RC4
  • at the Wayback Machine (archived 21 February 2015)
  • RSA Security Response to Weaknesses in Key Scheduling Algorithm of RC4
RC4 in WEP
  • (in)Security of the WEP algorithm
  • Fluhrer; Mantin; Shamir (Summer–Fall 2002). . CryptoBytes. 5 (2). Archived from the original (PostScript) on 2 January 2015.

this, article, about, stream, cipher, other, uses, disambiguation, cryptography, rivest, cipher, also, known, arcfour, meaning, alleged, below, stream, cipher, while, remarkable, simplicity, speed, software, multiple, vulnerabilities, have, been, discovered, r. This article is about the stream cipher For other uses see RC4 disambiguation In cryptography RC4 Rivest Cipher 4 also known as ARC4 or ARCFOUR meaning Alleged RC4 see below is a stream cipher While it is remarkable for its simplicity and speed in software multiple vulnerabilities have been discovered in RC4 rendering it insecure 3 4 It is especially vulnerable when the beginning of the output keystream is not discarded or when nonrandom or related keys are used Particularly problematic uses of RC4 have led to very insecure protocols such as WEP 5 RC4GeneralDesignersRon Rivest RSA Security First publishedLeaked in 1994 designed in 1987 Cipher detailKey sizes40 2048 bitsState size2064 bits 1684 effective Rounds1Speed7 cycles per byte on original Pentium 1 Modified Alleged RC4 on Intel Core 2 13 9 cycles per byte 2 As of 2015 update there is speculation that some state cryptologic agencies may possess the capability to break RC4 when used in the TLS protocol 6 IETF has published RFC 7465 to prohibit the use of RC4 in TLS 3 Mozilla and Microsoft have issued similar recommendations 7 8 A number of attempts have been made to strengthen RC4 notably Spritz RC4A VMPC and RC4 Contents 1 History 2 Description 2 1 Key scheduling algorithm KSA 2 2 Pseudo random generation algorithm PRGA 2 3 RC4 based random number generators 2 4 Implementation 2 5 Test vectors 3 Security 3 1 Roos biases and key reconstruction from permutation 3 2 Biased outputs of the RC4 3 3 Fluhrer Mantin and Shamir attack 3 4 Klein s attack 3 5 Combinatorial problem 3 6 Royal Holloway attack 3 7 Bar mitzvah attack 3 8 NOMORE attack 4 RC4 variants 4 1 RC4A 4 2 VMPC 4 3 RC4 4 4 Spritz 5 RC4 based protocols 6 See also 7 References 8 Further reading 9 External linksHistory EditRC4 was designed by Ron Rivest of RSA Security in 1987 While it is officially termed Rivest Cipher 4 the RC acronym is alternatively understood to stand for Ron s Code 9 see also RC2 RC5 and RC6 RC4 was initially a trade secret but in September 1994 a description of it was anonymously posted to the Cypherpunks mailing list 10 It was soon posted on the sci crypt newsgroup where it was broken within days by Bob Jenkins 11 From there it spread to many sites on the Internet The leaked code was confirmed to be genuine as its output was found to match that of proprietary software using licensed RC4 Because the algorithm is known it is no longer a trade secret The name RC4 is trademarked so RC4 is often referred to as ARCFOUR or ARC4 meaning alleged RC4 12 to avoid trademark problems RSA Security has never officially released the algorithm Rivest has however linked to the English Wikipedia article on RC4 in his own course notes in 2008 13 and confirmed the history of RC4 and its code in a 2014 paper by him 14 RC4 became part of some commonly used encryption protocols and standards such as WEP in 1997 and WPA in 2003 2004 for wireless cards and SSL in 1995 and its successor TLS in 1999 until it was prohibited for all versions of TLS by RFC 7465 in 2015 due to the RC4 attacks weakening or breaking RC4 used in SSL TLS The main factors in RC4 s success over such a wide range of applications have been its speed and simplicity efficient implementations in both software and hardware were very easy to develop Description EditRC4 generates a pseudorandom stream of bits a keystream As with any stream cipher these can be used for encryption by combining it with the plaintext using bitwise exclusive or decryption is performed the same way since exclusive or with given data is an involution This is similar to the one time pad except that generated pseudorandom bits rather than a prepared stream are used To generate the keystream the cipher makes use of a secret internal state which consists of two parts A permutation of all 256 possible bytes denoted S below Two 8 bit index pointers denoted i and j The permutation is initialized with a variable length key typically between 40 and 2048 bits using the key scheduling algorithm KSA Once this has been completed the stream of bits is generated using the pseudo random generation algorithm PRGA Key scheduling algorithm KSA Edit The key scheduling algorithm is used to initialize the permutation in the array S keylength is defined as the number of bytes in the key and can be in the range 1 keylength 256 typically between 5 and 16 corresponding to a key length of 40 128 bits First the array S is initialized to the identity permutation S is then processed for 256 iterations in a similar way to the main PRGA but also mixes in bytes of the key at the same time for i from 0 to 255 S i i endfor j 0 for i from 0 to 255 j j S i key i mod keylength mod 256 swap values of S i and S j endfor Pseudo random generation algorithm PRGA Edit nbsp The lookup stage of RC4 The output byte is selected by looking up the values of S i and S j adding them together modulo 256 and then using the sum as an index into S S S i S j is used as a byte of the key stream K For as many iterations as are needed the PRGA modifies the state and outputs a byte of the keystream In each iteration the PRGA increments i looks up the i th element of S S i and adds that to j exchanges the values of S i and S j then uses the sum S i S j modulo 256 as an index to fetch a third element of S the keystream value K below then bitwise exclusive ORed XORed with the next byte of the message to produce the next byte of either ciphertext or plaintext Each element of S is swapped with another element at least once every 256 iterations i 0 j 0 while GeneratingOutput i i 1 mod 256 j j S i mod 256 swap values of S i and S j t S i S j mod 256 K S t output K endwhile Thus this produces a stream of K 0 K 1 which are XORed with the plaintext to obtain the ciphertext So ciphertext l plaintext l K l RC4 based random number generators Edit Several operating systems include arc4random an API originating in OpenBSD providing access to a random number generator originally based on RC4 In OpenBSD 5 5 released in May 2014 arc4random was modified to use ChaCha20 15 16 The implementations of arc4random in FreeBSD NetBSD 17 18 and Linux s libbsd 19 also use ChaCha20 According to manual pages shipped with the operating system in the 2017 release of macOS and iOS operating systems Apple replaced RC4 with AES in its implementation of arc4random Man pages for the new arc4random include the backronym A Replacement Call for Random for ARC4 as a mnemonic 20 as it provides better random data than rand does Proposed new random number generators are often compared to the RC4 random number generator 21 22 Several attacks on RC4 are able to distinguish its output from a random sequence 23 Implementation Edit Many stream ciphers are based on linear feedback shift registers LFSRs which while efficient in hardware are less so in software The design of RC4 avoids the use of LFSRs and is ideal for software implementation as it requires only byte manipulations It uses 256 bytes of memory for the state array S 0 through S 255 k bytes of memory for the key key 0 through key k 1 and integer variables i j and K Performing a modular reduction of some value modulo 256 can be done with a bitwise AND with 255 which is equivalent to taking the low order byte of the value in question Test vectors Edit These test vectors are not official but convenient for anyone testing their own RC4 program The keys and plaintext are ASCII the keystream and ciphertext are in hexadecimal Key Keystream Plaintext CiphertextKey EB9F7781B734CA72A719 Plaintext BBF316E8D940AF0AD3Wiki 6044DB6D41B7 pedia 1021BF0420Secret 04D46B053CA87B59 Attack at dawn 45A01F645FC35B383552544B9BF5Security EditUnlike a modern stream cipher such as those in eSTREAM RC4 does not take a separate nonce alongside the key This means that if a single long term key is to be used to securely encrypt multiple streams the protocol must specify how to combine the nonce and the long term key to generate the stream key for RC4 One approach to addressing this is to generate a fresh RC4 key by hashing a long term key with a nonce However many applications that use RC4 simply concatenate key and nonce RC4 s weak key schedule then gives rise to related key attacks like the Fluhrer Mantin and Shamir attack which is famous for breaking the WEP standard 24 Because RC4 is a stream cipher it is more malleable than common block ciphers If not used together with a strong message authentication code MAC then encryption is vulnerable to a bit flipping attack The cipher is also vulnerable to a stream cipher attack if not implemented correctly 25 It is noteworthy however that RC4 being a stream cipher was for a period of time the only common cipher that was immune 26 to the 2011 BEAST attack on TLS 1 0 The attack exploits a known weakness in the way cipher block chaining mode is used with all of the other ciphers supported by TLS 1 0 which are all block ciphers In March 2013 there were new attack scenarios proposed by Isobe Ohigashi Watanabe and Morii 27 as well as AlFardan Bernstein Paterson Poettering and Schuldt that use new statistical biases in RC4 key table 28 to recover plaintext with large number of TLS encryptions 29 30 The use of RC4 in TLS is prohibited by RFC 7465 published in February 2015 Roos biases and key reconstruction from permutation Edit In 1995 Andrew Roos experimentally observed that the first byte of the keystream is correlated with the first three bytes of the key and the first few bytes of the permutation after the KSA are correlated with some linear combination of the key bytes 31 These biases remained unexplained until 2007 when Goutam Paul Siddheshwar Rathi and Subhamoy Maitra 32 proved the keystream key correlation and in another work Goutam Paul and Subhamoy Maitra 33 proved the permutation key correlations The latter work also used the permutation key correlations to design the first algorithm for complete key reconstruction from the final permutation after the KSA without any assumption on the key or initialization vector This algorithm has a constant probability of success in a time which is the square root of the exhaustive key search complexity Subsequently many other works have been performed on key reconstruction from RC4 internal states 34 35 36 Subhamoy Maitra and Goutam Paul 37 also showed that the Roos type biases still persist even when one considers nested permutation indices like S S i or S S S i These types of biases are used in some of the later key reconstruction methods for increasing the success probability Biased outputs of the RC4 Edit The keystream generated by the RC4 is biased to varying degrees towards certain sequences making it vulnerable to distinguishing attacks The best such attack is due to Itsik Mantin and Adi Shamir who showed that the second output byte of the cipher was biased toward zero with probability 1 128 instead of 1 256 This is due to the fact that if the third byte of the original state is zero and the second byte is not equal to 2 then the second output byte is always zero Such bias can be detected by observing only 256 bytes 23 Souradyuti Paul and Bart Preneel of COSIC showed that the first and the second bytes of the RC4 were also biased The number of required samples to detect this bias is 225 bytes 38 Scott Fluhrer and David McGrew also showed attacks that distinguished the keystream of the RC4 from a random stream given a gigabyte of output 39 The complete characterization of a single step of RC4 PRGA was performed by Riddhipratim Basu Shirshendu Ganguly Subhamoy Maitra and Goutam Paul 40 Considering all the permutations they proved that the distribution of the output is not uniform given i and j and as a consequence information about j is always leaked into the output Fluhrer Mantin and Shamir attack Edit Main article Fluhrer Mantin and Shamir attack In 2001 a new and surprising discovery was made by Fluhrer Mantin and Shamir over all the possible RC4 keys the statistics for the first few bytes of output keystream are strongly non random leaking information about the key If the nonce and long term key are simply concatenated to generate the RC4 key this long term key can be discovered by analysing a large number of messages encrypted with this key 41 This and related effects were then used to break the WEP wired equivalent privacy encryption used with 802 11 wireless networks This caused a scramble for a standards based replacement for WEP in the 802 11 market and led to the IEEE 802 11i effort and WPA 42 Protocols can defend against this attack by discarding the initial portion of the keystream Such a modified algorithm is traditionally called RC4 drop n where n is the number of initial keystream bytes that are dropped The SCAN default is n 768 bytes but a conservative value would be n 3072 bytes 43 The Fluhrer Mantin and Shamir attack does not apply to RC4 based SSL since SSL generates the encryption keys it uses for RC4 by hashing meaning that different SSL sessions have unrelated keys 44 Klein s attack Edit In 2005 Andreas Klein presented an analysis of the RC4 stream cipher showing more correlations between the RC4 keystream and the key 45 Erik Tews Ralf Philipp Weinmann and Andrei Pychkine used this analysis to create aircrack ptw a tool that cracks 104 bit RC4 used in 128 bit WEP in under a minute 46 Whereas the Fluhrer Mantin and Shamir attack used around 10 million messages aircrack ptw can break 104 bit keys in 40 000 frames with 50 probability or in 85 000 frames with 95 probability Combinatorial problem Edit A combinatorial problem related to the number of inputs and outputs of the RC4 cipher was first posed by Itsik Mantin and Adi Shamir in 2001 whereby of the total 256 elements in the typical state of RC4 if x number of elements x 256 are only known all other elements can be assumed empty then the maximum number of elements that can be produced deterministically is also x in the next 256 rounds This conjecture was put to rest in 2004 with a formal proof given by Souradyuti Paul and Bart Preneel 47 Royal Holloway attack Edit In 2013 a group of security researchers at the Information Security Group at Royal Holloway University of London reported an attack that can become effective using only 234 encrypted messages 48 49 50 While yet not a practical attack for most purposes this result is sufficiently close to one that it has led to speculation that it is plausible that some state cryptologic agencies may already have better attacks that render RC4 insecure 6 Given that as of 2013 update a large amount of TLS traffic uses RC4 to avoid attacks on block ciphers that use cipher block chaining if these hypothetical better attacks exist then this would make the TLS with RC4 combination insecure against such attackers in a large number of practical scenarios 6 In March 2015 researcher to Royal Holloway announced improvements to their attack providing a 226 attack against passwords encrypted with RC4 as used in TLS 51 Bar mitzvah attack Edit Main article Bar mitzvah attack At the Black Hat Asia 2015 Conference Itsik Mantin presented another attack against SSL using RC4 cipher 52 53 NOMORE attack Edit In 2015 security researchers from KU Leuven presented new attacks against RC4 in both TLS and WPA TKIP 54 Dubbed the Numerous Occurrence MOnitoring amp Recovery Exploit NOMORE attack it is the first attack of its kind that was demonstrated in practice Their attack against TLS can decrypt a secure HTTP cookie within 75 hours The attack against WPA TKIP can be completed within an hour and allows an attacker to decrypt and inject arbitrary packets RC4 variants EditAs mentioned above the most important weakness of RC4 comes from the insufficient key schedule the first bytes of output reveal information about the key This can be corrected by simply discarding some initial portion of the output stream 55 This is known as RC4 dropN where N is typically a multiple of 256 such as 768 or 1024 A number of attempts have been made to strengthen RC4 notably Spritz RC4A VMPC and RC4 RC4A Edit Souradyuti Paul and Bart Preneel have proposed an RC4 variant which they call RC4A 56 RC4A uses two state arrays S1 and S2 and two indexes j1 and j2 Each time i is incremented two bytes are generated First the basic RC4 algorithm is performed using S1 and j1 but in the last step S1 i S1 j1 is looked up in S2 Second the operation is repeated without incrementing i again on S2 and j2 and S1 S2 i S2 j2 is output Thus the algorithm is All arithmetic is performed modulo 256 i 0 j1 0 j2 0 while GeneratingOutput i i 1 j1 j1 S1 i swap values of S1 i and S1 j1 output S2 S1 i S1 j1 j2 j2 S2 i swap values of S2 i and S2 j2 output S1 S2 i S2 j2 endwhile Although the algorithm required the same number of operations per output byte there is greater parallelism than RC4 providing a possible speed improvement Although stronger than RC4 this algorithm has also been attacked with Alexander Maximov 57 and a team from NEC 58 developing ways to distinguish its output from a truly random sequence VMPC Edit Main article Variably Modified Permutation Composition Variably Modified Permutation Composition VMPC is another RC4 variant 59 It uses similar key schedule as RC4 with j S j S i key i mod keylength mod 256 iterating 3 256 768 times rather than 256 and with an optional additional 768 iterations to incorporate an initial vector The output generation function operates as follows All arithmetic is performed modulo 256 i 0 while GeneratingOutput a S i j S j a output S S S j 1 Swap S i and S j b S j S i b S j a i i 1 endwhile This was attacked in the same papers as RC4A and can be distinguished within 238 output bytes 60 58 RC4 Edit RC4 is a modified version of RC4 with a more complex three phase key schedule taking about three times as long as RC4 or the same as RC4 drop512 and a more complex output function which performs four additional lookups in the S array for each byte output taking approximately 1 7 times as long as basic RC4 61 All arithmetic modulo 256 lt lt and gt gt are left and right shift is exclusive OR while GeneratingOutput i i 1 a S i j j a Swap S i and S j b S j S j S i S i b c S i lt lt 5 j gt gt 3 S j lt lt 5 i gt gt 3 output S a b S c 0xAA S j b endwhile This algorithm has not been analyzed significantly Spritz Edit In 2014 Ronald Rivest gave a talk and co wrote a paper 14 on an updated redesign called Spritz A hardware accelerator of Spritz was published in Secrypt 2016 62 and shows that due to multiple nested calls required to produce output bytes Spritz performs rather slowly compared to other hash functions such as SHA 3 and the best known hardware implementation of RC4 The algorithm is 14 All arithmetic is performed modulo 256 while GeneratingOutput i i w j k S j S i k k i S j swap values of S i and S j output z S j S i S z k endwhile The value w is relatively prime to the size of the S array So after 256 iterations of this inner loop the value i incremented by w every iteration has taken on all possible values 0 255 and every byte in the S array has been swapped at least once Like other sponge functions Spritz can be used to build a cryptographic hash function a deterministic random bit generator DRBG an encryption algorithm that supports authenticated encryption with associated data AEAD etc 14 In 2016 Banik and Isobe proposed an attack that can distinguish Spritz from random noise 63 RC4 based protocols EditWEP TKIP default algorithm for WPA but can be configured to use AES CCMP instead of RC4 BitTorrent protocol encryption Microsoft Office XP insecure implementation since nonce remains unchanged when documents get modified 64 Microsoft Point to Point Encryption Transport Layer Security Secure Sockets Layer was optional and then the use of RC4 was prohibited in RFC 7465 Secure Shell optionally Remote Desktop Protocol optionally Kerberos optionally SASL Mechanism Digest MD5 optionally historic obsoleted in RFC 6331 Gpcode AK an early June 2008 computer virus for Microsoft Windows which takes documents hostage for ransom by obscuring them with RC4 and RSA 1024 encryption PDF Skype in modified form 65 Where a protocol is marked with optionally RC4 is one of multiple ciphers the system can be configured to use See also EditTEA Block TEA also known as eXtended TEA and Corrected Block TEA A family of block ciphers that like RC4 are designed to be very simple to implement Advanced Encryption Standard CipherSaberReferences Edit P Prasithsangaree P Krishnamurthy 2003 Analysis of Energy Consumption of RC4 and AES Algorithms in Wireless LANs PDF GLOBECOM 03 IEEE Archived from the original PDF on 3 December 2013 Crypto 5 6 0 Benchmarks Retrieved 22 September 2015 a b Andrei Popov February 2015 Prohibiting RC4 Cipher Suites doi 10 17487 RFC7465 RFC 7465 Lucian Constantin 14 May 2014 Microsoft continues RC4 encryption phase out plan with NET security updates ComputerWorld J Katz Y Lindell 2014 Introduction to Modern Cryptography Chapman and Hall CRC p 77 a b c John Leyden 6 September 2013 That earth shattering NSA crypto cracking Have spooks smashed RC4 The Register Mozilla Security Server Side TLS Recommended Configurations Mozilla Retrieved 3 January 2015 Security Advisory 2868725 Recommendation to disable RC4 Microsoft 12 November 2013 Retrieved 4 December 2013 Rivest FAQ Thank you Bob Anderson Cypherpunks Mailing list 9 September 1994 Archived from the original on 22 July 2001 Retrieved 28 May 2007 Bob Jenkins 15 September 1994 Re RC4 Newsgroup sci crypt Usenet 359qjg 55v 1 mhadg production compuserve com Manual Pages arc4random 5 June 2013 Retrieved 2 February 2018 6 857 Computer and Network Security Spring 2008 Lectures and Handouts a b c d Rivest Ron Schuldt Jacob 27 October 2014 Spritz a spongy RC4 like stream cipher and hash function PDF Retrieved 26 October 2014 OpenBSD 5 5 Retrieved 21 September 2014 deraadt ed 21 July 2014 libc crypt arc4random c BSD Cross Reference OpenBSD src lib Retrieved 13 January 2015 ChaCha based random number generator for OpenBSD riastradh ed 16 November 2014 libc gen arc4random c BSD Cross Reference NetBSD src lib Retrieved 13 January 2015 Legacy arc4random 3 API from OpenBSD reimplemented using the ChaCha20 PRF with per thread state arc4random NetBSD Manual Pages Archived from the original on 6 July 2020 Retrieved 6 January 2015 Update arc4random module from OpenBSD and LibreSSL Retrieved 6 January 2016 arc4random 3 OpenBSD Bartosz Zoltak VMPC R Cryptographically Secure Pseudo Random Number Generator Alternative to RC4 2010 Chefranov A G Pseudo Random Number Generator RC4 Period Improvement 2006 a b Itsik Mantin Adi Shamir 2001 A Practical Attack on Broadcast RC4 PDF FSE 2001 pp 152 164 doi 10 1007 3 540 45473 X 13 RSA Security Response to Weaknesses in Key Scheduling Algorithm of RC4 RSA Laboratories 1 September 2001 Sklyarov Dmitry 2004 Hidden Keys to Software Break Ins and Unauthorized Entry A List Publishing pp 92 93 ISBN 978 1931769303 ssl Safest ciphers to use with the BEAST TLS 1 0 exploit I ve read that RC4 is immune serverfault com Isobe Takanori Ohigashi Toshihiro 10 13 March 2013 Security of RC4 Stream Cipher Hiroshima University Retrieved 27 October 2014 Pouyan Sepehrdad Serge Vaudenay Martin Vuagnoux 2011 Discovery and Exploitation of New Biases in RC4 Selected Areas in Cryptography Lecture Notes in Computer Science Vol 6544 pp 74 91 doi 10 1007 978 3 642 19574 7 5 ISBN 978 3 642 19573 0 Green Matthew 12 March 2013 Attack of the week RC4 is kind of broken in TLS Cryptography Engineering Retrieved 12 March 2013 Nadhem AlFardan Dan Bernstein Kenny Paterson Bertram Poettering Jacob Schuldt On the Security of RC4 in TLS Royal Holloway University of London Retrieved 13 March 2013 Andrew Roos A Class of Weak Keys in the RC4 Stream Cipher Two posts in sci crypt message id 43u1eh 1j3 hermes is co za and 44ebge llf hermes is co za 1995 Goutam Paul Siddheshwar Rathi and Subhamoy Maitra On Non negligible Bias of the First Output Byte of RC4 towards the First Three Bytes of the Secret Key Proceedings of the International Workshop on Coding and Cryptography WCC 2007 pages 285 294 and Designs Codes and Cryptography Journal pages 123 134 vol 49 no 1 3 December 2008 Goutam Paul and Subhamoy Maitra Permutation after RC4 Key Scheduling Reveals the Secret Key SAC 2007 pages 360 377 vol 4876 Lecture Notes in Computer Science Springer Eli Biham and Yaniv Carmeli Efficient Reconstruction of RC4 Keys from Internal States FSE 2008 pages 270 288 vol 5086 Lecture Notes in Computer Science Springer Mete Akgun Pinar Kavak Huseyin Demirci New Results on the Key Scheduling Algorithm of RC4 INDOCRYPT 2008 pages 40 52 vol 5365 Lecture Notes in Computer Science Springer Riddhipratim Basu Subhamoy Maitra Goutam Paul and Tanmoy Talukdar On Some Sequences of the Secret Pseudo random Index j in RC4 Key Scheduling Proceedings of the 18th International Symposium on Applied Algebra Algebraic Algorithms and Error Correcting Codes AAECC 8 12 June 2009 Tarragona Spain pages 137 148 vol 5527 Lecture Notes in Computer Science Springer Subhamoy Maitra and Goutam Paul New Form of Permutation Bias and Secret Key Leakage in Keystream Bytes of RC4 Proceedings of the 15th Fast Software Encryption FSE Workshop 10 13 February 2008 Lausanne Switzerland pages 253 269 vol 5086 Lecture Notes in Computer Science Springer Souradyuti Paul Bart Preneel Analysis of Non fortuitous Predictive States of the RC4 Keystream Generator PDF Indocrypt 2003 pp 52 67 Scott R Fluhrer David A McGrew Statistical Analysis of the Alleged RC4 Keystream Generator PDF FSE 2000 pp 19 30 Archived from the original PDF on 2 May 2014 Basu Riddhipratim Ganguly Shirshendu Maitra Subhamoy Paul Goutam 2008 A Complete Characterization of the Evolution of RC4 Pseudo Random Generation Algorithm Journal of Mathematical Cryptology 2 3 257 289 doi 10 1515 JMC 2008 012 S2CID 9613837 Fluhrer Scott R Mantin Itsik Shamir Adi 2001 Weaknesses in the Key Scheduling Algorithm of RC4 Selected Areas in Cryptography 1 24 Archived from the original on 2 June 2004 Interim technology for wireless LAN security WPA to replace WEP while industry develops new security standard Archived from the original on 9 July 2012 RC4 drop nbytes in the Standard Cryptographic Algorithm Naming database Rivest Ron RSA Security Response to Weaknesses in Key Scheduling Algorithm of RC4 A Klein Attacks on the RC4 stream cipher Designs Codes and Cryptography 2008 48 269 286 Erik Tews Ralf Philipp Weinmann Andrei Pyshkin Breaking 104 bit WEP in under a minute Souradyuti Paul and Bart Preneel A New Weakness in the RC4 Keystream Generator and an Approach to Improve the Security of the Cipher Fast Software Encryption FSE 2004 pp 245 259 John Leyden 15 March 2013 HTTPS cookie crypto CRUMBLES AGAIN in hands of stats boffins The Register AlFardan et al 8 July 2013 On the Security of RC4 in TLS and WPA PDF Information Security Group Royal Holloway University of London On the Security of RC4 in TLS and WPA Information Security Group Royal Holloway University of London Retrieved 6 September 2013 RC4 must die Briefings March 26 amp 27 2015 Retrieved 19 November 2016 Attacking SSL when using RC4 PDF 2015 Retrieved 19 November 2016 Mathy Vanhoef Frank Piessens 9 August 2015 RC4 NOMORE Numerous Occurrence MOnitoring amp Recovery Exploit Ilya Mironov 1 June 2002 Not So Random Shuffles of RC4 Advances in Cryptology CRYPTO 2002 PDF Lecture Notes in Computer Science vol 2442 Springer Verlag pp 304 319 doi 10 1007 3 540 45708 9 20 ISBN 978 3 540 44050 5 Cryptology ePrint Archive Report 2002 067 retrieved 4 November 2011 Souradyuti Paul Bart Preneel 2004 A New Weakness in the RC4 Keystream Generator and an Approach to Improve the Security of the Cipher Fast Software Encryption FSE 2004 Lecture Notes in Computer Science vol 3017 Springer Verlag pp 245 259 doi 10 1007 978 3 540 25937 4 16 ISBN 978 3 540 22171 5 retrieved 4 November 2011 Alexander Maximov 22 February 2007 Two Linear Distinguishing Attacks on VMPC and RC4A and Weakness of RC4 Family of Stream Ciphers Cryptology ePrint Archive Report 2007 070 retrieved 4 November 2011 a b Yukiyasu Tsunoo Teruo Saito Hiroyasu Kubo Maki Shigeri Tomoyasu Suzaki Takeshi Kawabata 2005 The Most Efficient Distinguishing Attack on VMPC and RC4A PDF Bartosz Zoltak 2004 VMPC One Way Function and Stream Cipher PDF Fast Software Encryption FSE 2004 PDF Lecture Notes in Computer Science vol 3017 Springer Verlag pp 210 225 CiteSeerX 10 1 1 469 8297 doi 10 1007 978 3 540 25937 4 14 ISBN 978 3 540 22171 5 retrieved 4 November 2011 CryptoLounge RC4A Archived from the original on 1 October 2011 Retrieved 4 November 2011 Subhamoy Maitra Goutam Paul 19 September 2008 Analysis of RC4 and Proposal of Additional Layers for Better Security Margin Progress in Cryptology INDOCRYPT 2008 PDF Lecture Notes in Computer Science vol 5365 Springer Verlag pp 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 retrieved 4 November 2011 Debjyoti Bhattacharjee Anupam Chattopadhyay Hardware Accelerator for Stream Cipher Spritz PDF Secrypt 2016 Retrieved 29 July 2016 Banik Subhadeep Isobe Takanori 20 March 2016 Peyrin Thomas ed Cryptanalysis of the Full Spritz Stream Cipher Lecture Notes in Computer Science Springer Berlin Heidelberg pp 63 77 doi 10 1007 978 3 662 52993 5 4 ISBN 9783662529928 S2CID 16296315 Hongjun Wu The Misuse of RC4 in Microsoft Word and Excel https eprint iacr org 2005 007 Skype s encryption procedure partly exposed www h online com Archived from the original on 11 July 2010 Retrieved 8 July 2010 Further reading EditPaul Goutam Subhamoy Maitra 2011 RC4 Stream Cipher and Its Variants CRC Press ISBN 9781439831359 Schneier Bruce 1995 Chapter 17 Other Stream Ciphers and Real Random Sequence Generators Applied Cryptography Protocols Algorithms and Source Code in C 2nd ed Wiley ISBN 978 0471117094 External links EditOriginal posting of RC4 algorithm to Cypherpunks mailing list Archived version RFC 4345 Improved Arcfour Modes for the Secure Shell SSH Transport Layer Protocol RFC 6229 Test Vectors for the Stream Cipher RC4 RFC 7465 Prohibiting RC4 Cipher Suites Kaukonen Thayer A Stream Cipher Encryption Algorithm Arcfour I D draft kaukonen cipher arcfour 03 SCAN s entry for RC4 Attacks on RC4 at the Wayback Machine archived 21 February 2015 RSA Security Response to Weaknesses in Key Scheduling Algorithm of RC4RC4 in WEP in Security of the WEP algorithm Fluhrer Mantin Shamir Summer Fall 2002 Attacks On RC4 and WEP CryptoBytes 5 2 Archived from the original PostScript on 2 January 2015 Retrieved from https en wikipedia org w index php title RC4 amp oldid 1171674142, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.