# Encryption Algorithms

Different encryption algorithms use proprietary methods of generating these keys and are therefore useful for
different applications. Here are some nitty gritty details about some of these encryption algorithms. Strong encryption is often discerned by the key length
used by the algorithm.

Encryption has served many purposed over the years from government and military contracts to bank software and information for websites you use daily. It is taught to programming students at
the best universities around the

globe.
There are new types of encryptions being developed constantly in order to provide the best protection which makes it important to stay up to
date. These are just a few of the algorithms used to help keep your information safe.

## RSA

In 1977, shortly after the idea of a public key

system was proposed, three mathematicians, Ron Rivest,

Adi Shamir and Len Adleman gave
a concrete example of how such a method could be implemented. To honour them, the method was referred to as the RSA Scheme. The system
uses a private and a public key. To start two large prime numbers are selected and then multiplied together;

*n=p*q*.

If we let

*f(n) = (p-1) (q-1)*, and

*e>1* such that

*GCD(e, f(n))=1*. Here

*e* will have a fairly large
probability of being co-prime to

*f(n)*, if

*n* is large enough and

*e* will be part of the encryption key. If we
solve the Linear Diophantine equation;

*ed congruent 1 (mod f(n))*, for

*d*. The pair of integers

*(e, n)* are the
public key and

*(d, n)* form the private key. Encryption of

*M* can be accomplished by the following expression;

*Me = qn + C*
where

*0<= C < n*. Decryption would be the inverse of the encryption and could be expressed as;

*Cd congruent R (mod n)*
where

*0<= R < n*. RSA is the most popular method for public key encryption and digital signatures today.

## DES/3DES

The Data Encryption Standard (DES) was developed and endorsed by the U.S. government in 1977 as an official standard and forms the basis
not only for the Automatic Teller Machines (ATM) PIN authentication but a variant is also utilized in UNIX password encryption. DES is
a block cipher with 64-bit block size that uses 56-bit keys. Due to recent advances in computer technology, some experts no longer
consider

DES secure against all attacks; since then Triple-DES (3DES)
has emerged as a stronger method. Using standard DES encryption, Triple-DES encrypts data three times and uses a different key for at
least one of the three passes giving it a cumulative key size of 112-168 bits.

## BLOWFISH

Blowfish is a symmetric block cipher just like DES or IDEA. It takes a variable-length key, from 32 to 448 bits, making it ideal for
both domestic and exportable use. Bruce Schneier designed Blowfish in 1993 as a fast, free alternative to the then existing encryption algorithms.
Since then Blowfish has been analysed considerably, and is gaining acceptance as a strong encryption algorithm.

## IDEA

International Data Encryption Algorithm (IDEA) is an algorithm that was developed by Dr. X. Lai and Prof. J. Massey in Switzerland in
the early 1990s to replace the DES standard. It uses the same key for encryption and decryption, like DES operating on 8 bytes at a
time. Unlike DES though it uses a 128 bit key. This key length makes it impossible to break by simply trying every key, and no other
means of attack is known. It is a fast algorithm, and has also been implemented in hardware chipsets, making it even faster.

## SEAL

Rogaway and Coppersmith designed the Software-optimized Encryption Algorithm (SEAL) in 1993. It is a Stream-Cipher, i.e., data to be
encrypted is continuously encrypted. Stream Ciphers are much faster than block ciphers (Blowfish, IDEA, DES) but have a longer
initialization phase during which a large set of tables is done using the Secure Hash Algorithm. SEAL uses a 160 bit key for encryption
and is considered very safe.

## RC4

RC4 is a cipher invented by Ron Rivest, co-inventor of the RSA Scheme. It is used in a number of military (depending on the key length) and commercial systems like Lotus Notes
and Netscape. It is a cipher with a key size of up to 2048 bits (256 bytes), which on the brief examination given it over the past year
or so seems to be a relatively fast and strong cypher. It creates a stream of random bytes and 'XORing' those bytes with the text. It
is useful in situations in which a new key can be chosen for each message.