0% found this document useful (0 votes)
37 views

Encryption/Decyprtion Using RC4: Vivek Ramachandran

RC4 is a symmetric key encryption algorithm that is commonly used to encrypt network traffic using SSL. It works by using a secret key to initialize and scramble an array, and then generate a keystream via a pseudo-random generation algorithm. This keystream is then XOR'd with plaintext to encrypt it, and with ciphertext to decrypt it back to the original plaintext. RC4 can be used to encrypt files by XOR'ing the file bytes with a keystream generated from the secret key, and decryption works the same way using the same key to generate the matching keystream.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views

Encryption/Decyprtion Using RC4: Vivek Ramachandran

RC4 is a symmetric key encryption algorithm that is commonly used to encrypt network traffic using SSL. It works by using a secret key to initialize and scramble an array, and then generate a keystream via a pseudo-random generation algorithm. This keystream is then XOR'd with plaintext to encrypt it, and with ciphertext to decrypt it back to the original plaintext. RC4 can be used to encrypt files by XOR'ing the file bytes with a keystream generated from the secret key, and decryption works the same way using the same key to generate the matching keystream.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 14

Encryption/Decyprtion using

RC4
Vivek Ramachandran
Encryption Basics
• Encryption is yet another process by which
information is protected from unauthorized
access.
• It is normally accomplished by rendering
the original information unreadable by
using a reversible technique known only to
the authorized entities.
Types of Encryption
• Private/Symmetric Key Cryptography :
Same key is used for encryption and
decryption.

• Public/Asymmetric Key Cryptography :


Different keys are used for encryption and
decryption.
RC4 Basics
• A symmetric key encryption algo. Invented by
Ron Rivest.
• Normally uses 64 bit and 128 bit key sizes.
• Most popular implementation is in WEP for
802.11 wireless networks and in SSL.
• Cryptographically very strong yet very easy to
implement.
• Consists of 2 parts: Key Scheduling Algorithm
(KSA) & Pseudo-Random Generation Algorithm
RC4 Block Diagram
Secret Key

RC4

Keystream

Encrypted
Plain Text + Text
RC4 …break up
• Initialize an array of 256 bytes.
• Run the KSA on them
• Run the PRGA on the KSA output to
generate keystream.
• XOR the data with the keystream.
Array Initialization
C Code:

char S[256];
Int i;
For(i=0; i< 256; i++)
S[i] = i;

After this the array would like this :

S[] = { 0,1,2,3, ……, 254, 255}


The KSA
• The initialized array S[256] is now run through
the KSA. The KSA uses the secret key to
scramble the array.
• C Code for KSA:

int i, j = 0;
for(i=0; i<256; i++)
{
j = ( j + S[i] + key[ i % key_len] ) % 256;
swap(S[i], S[j]);
}
The PRGA
• The KSA scrambled S[256] array is used to generate the
PRGA. This is the actual keystream.
• C Code:

i = j = 0;
while(output_bytes)
{
i = ( I + 1) % 256;
j = ( j + S[i] ) % 256;
swap( S[i], S[j] );
output = S[ ( S[i] + S[j] ) % 256 ]
}
Encryption using RC4
• Choose a secret key
• Run the KSA and PRGA using the key to
generate a keystream.
• XOR keystream with the data to generated
encrypted stream.
• Transmit Encrypted stream.
Decryption using RC4
• Use the same secret key as during the encryption phase.
• Generate keystream by running the KSA and PRGA.
• XOR keystream with the encrypted text to generate the
plain text.
• Logic is simple :

(A xor B) xor B = A

A = Plain Text or Data


B = KeyStream
Making of a RC4 File Encryptor
• Using a secret key generate the RC4
keystream using the KSA and PRGA.
• Read the file and xor each byte of the file
with the corresponding keystream byte.
• Write this encrypted output to a file.
• Transmit file over an insecure channel.
Making of a RC4 File Decryptor
• Using the same secret key used to encrypt
generate the RC4 keystream.
• Read the encrypted file and Xor every byte
of this encrypted stream with the
corresponding byte of the keystream.
• This will yield the original plaintext
That's all folks !!

Let the coding begin !

You might also like