Tutorials AES Animation
Algorithms
Blowfish
Blowfish is a Symmetric Block Cipher. designed in 1993 by Bruce Schneier.
Schneier has stated that, "Blowfish is unpatented, and will remain so in
all countries. The algorithm is hereby placed in the public domain, and
can be freely used by anyone."
This cryptography algorithm is intended as a replacement for DES. Like
DES it is a 16 round Feistel cipher working on 64 bit blocks. However,
unlike DES it can have varying key sizes ranging from 32 bits to 448
bits.
There is a good tutorial here.
AES
Advanced Encryption Standard was ultimately chosen as a replacement for
DES. AES is also Known as Rijndael block cipher. It was officially
designated as a replacement for DES in 2001 after a 5 year process
involving 15 competing algorithms. AES is designated as FIPS 197. Other
algorithms that did not win that competition include such well known
algorithms as Twofish.
AES can have three different key sizes, they are:128, 192, or 256 bits.
The three different implementations of AES are referred to as AES 128,
AES 192, and AES 256. All three operate on a block size of 128 bits.
This algorithm was developed by two Belgian cryptographers, Joan Daemen
and Vincent Rijmen. Unlike both DES And 3DES, AES is not based on a
Feistel network.
AES General Overivew
1.Key Expansion—round keys are derived from the cipher key using Rijndael's key schedule
Initial Round
1.AddRoundKey—each byte of the state is combined with the round key
using bitwise xor
Rounds
1.SubBytes—a non-linear substitution step where each byte is replaced
with another according to a lookup table.
2.ShiftRows—a transposition step where each row of the state is shifted
cyclically a certain number of steps.
3.MixColumns—a mixing operation which operates on the columns of the
state, combining the four bytes in each column.
4.AddRoundKey
Final Round (no MixColumns)
1.SubBytes
2.ShiftRows
3.AddRoundKey
AES 128 bit key has 10 rounds, 192 bit key has 12 rounds, 256 bit key has 14 rounds
A great tutorial on AES can be found here
SkipJack
Developed by the NSA, and was designed for the clipper
chip. It was originally classified. The clipper chip was a chip with
built in encryption, however the decryption key would be kept in a key
escrow in case law enforcement need to decrypt data without the computer
owners cooperation. This feature made the process highly controversial.
Skipjack uses an 80-bit key to encrypt or decrypt 64-bit data blocks. It
is an unbalanced Feistel network with 32 rounds
Serpent
This algorithm was invented by Ross Anderson, Eli
Biham, and Lars Knudsen. It was submitted to the AES competition but was
not selected, in large part due to the fact that its performance is
slower than AES. However in
the ensuing years since the AES competition, computational power has
increased dramatically. This has led some experts to re-consider the use
of Serpent on modern systems.
SHARK
SHARK was invented by a team of cryptographers
including Vincent Rijmen, Joan Daemen, Bart Preneel, Antooon Bosslaers,
and Erik De Win. SHARK uses a 64 bit block with a 128 bit key and
operates in 6 rounds (the original SHARK used 6 rounds).
It has some similarities to the Rijndael cipher including the use
of s-boxes that are based on GF(28). Remember that GF is a
Galois Field defined by a particular prime number to some power.
Like Rijndael (and unlike DES) the s-boxes take a fixed number of
bits and put out the same number of bits (recall that DES s-boxes took
in 6 bits and produced 4 bits)
GOST
GOST is a DES like algorithm developed by the Soviets
in the 1970's. It was classified but released to the public in 1994. It
uses a 64 bit block and a key of 256 bits. It is a 32 round Feistel
Cipher.
The round function is
1. Add the subkey modulo 2
2. Put the result through s-boxes
3. rotate the result 11 bits
The Key Schedule is:
1. Divide the 256 bit key into 8 32 bit sub keys
2. Each sub key is used four times
the s boxes take in four bit input and put out 4 bit out put (there are
8 of them). Some implementations have secret s boxes.
RC4
Ron Rivest created this algorithm in 1987. The RC
stands for Ron’s Cipher. It is the most widely used software stream
cipher. The algorithm is used identically for encryption and decryption
as the data stream is simply XORed with the key.
RC 4 Uses a variable length key from 1 to 256 bytes. That key
constitutes a state table that is used for subsequent generation of
pseudo-random bytes and then to generate a pseudo-random stream which is
XORed with the plaintext to produce the ciphertext
The permutation is initialized with a variable length
key, typically between 40 and 256 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).
FISH
This algorithm was published by the German engineering
firm Seimans in 1993. The FISH (FIbonacci SHrinking) cipher is a
software based stream cipher using Lagged Fibonacci generator along with
a concept borrowed from the shrinking generator ciphers.
PIKE
This algorithm was published in a paper by Ross Anderson as an improvement on FISH. In that paper Anderson showed that Fish was vulnerable to known plaintext attacks. PIKE is both faster and stronger than FISH.
DES
The Data Encryption Standard is a classic in that
annals of cryptography. It was selected by the National Bureau of
Standards as an official Federal Information Processing Standard (FIPS)
for the United States in 1976. While it is now considered outdated and
is not recommended for use, it was the premier block cipher for many
years and bears study. Many cryptography textbooks and university
courses use this as the basic Processing Standard (FIPS) for the United
States in 1976
DES uses a 56-bit key applied to a 64 bit block. (note there is actually
a 64 bit key generated but 8 bits are just for error correction.)
DES is a Feistel cipher with 16 rounds and a 48-bit round key for each
round. So its general functionality follows the Feistel method of
dividing the 64 bit block into two halves (32 bits each, this is NOT an
unbalanced Feistel cipher) , applying the round function to one half,
then xor’ing that output with the other half.
To generate the round keys, the 56-bit key is split
into two 28-bit halves and those halves are circularly shifted after
each round by one or two bits. This means each round it uses a slightly
different key.
FEAL
FEAL is an acronym for Fast data Encipherment
ALgorithm. It was designed
by Akihrio Shimizu and Shoji Miyaguchi and published in 1987.
There are variations of the FEAL cipher but all use a 64 bit
block and essentially the same round function. FEAL-4 uses 4 rounds,
FEAL-8 uses 8 rounds, FEAL-N uses N rounds, chosen by the implementer.
This algorithm has not done well under cryptanalysis. Several
weaknesses have been found in the algorithm and it is not considered
secure.
|
|