RC4 is a stream cipher widely used in various information security systems in computer networks (for example, in the SSL protocol and for encrypting passwords in Windows NT). Code developed by RSA Security Inc. and to use it requires a license. RC4 is by Ronald Rivest. RC stands for Ron's Code or Rivest's Cipher. Until 1995, the RC4 code was never published.
The RC4 algorithm is built like any stream cipher based on a key-parameterized pseudo-random bit generator with uniform distribution. The main advantages of the cipher are high speed and variable key size. A typical implementation performs 19 machine instructions for each byte of text.
A 128 bit RC2 key provides the same level of security as IDEA or Triple DES. RC2 is used extensively by developers whose products are exported outside the United States, since exporting DES has long been banned. RC2 is used, in particular, in non-US versions of Microsoft Outlook Express Express.
In the US, key length for domestic use is recommended to be 128 bits, but the agreement between the Software Publishers Association (SPA) and the US government gives RC4 a special status, which means that it is allowed to export ciphers with key lengths up to 40 bits. 56-bit keys are allowed to use overseas branches of US companies.
In 1995, the RC4 source code was anonymously published in the sci.crypt news group. Apparently, this text was obtained as a result of the analysis of the executable code. The published cipher is compatible with existing products using RC4, and some participants in the newsgroup, who had, according to them, access to the source code RC4, confirmed the identity of the algorithms with differences in the notation and structure of the program.
Algorithm Description
The core of the algorithm consists of the keystream generation function. This function generates a sequence of bits, which is then combined with plaintext by modulo two. Decryption consists of regenerating this key stream and summing it with the ciprogram modulo two, restoring the original text. The other main part of the algorithm is the initialization function, which uses a variable-length key to create the initial state of the keystream generator.
RC4 is actually a class of algorithms determined by the size of its block. This parameter n is the word size for the algorithm. Usually, n = 8, but for the purposes of analysis, it can be reduced. However, to increase safety, it is necessary to increase this value. The internal state of RC4 consists of an array of 2n words and two counters, each one word in size. The array is known as the S-box, and will be denoted below as S. It always contains a permutation of 2n possible word meanings. Two counters are indicated by i and j.
Comments
To leave a comment
Information security, Cryptographic ciphers
Terms: Information security, Cryptographic ciphers