It was first developed as an attack on an attempted expansion of a block cipher by Diffie and Hellman in 1977. When trying to improve the security of a block cipher, one might get the idea to simply use two independent keys to encrypt the data twice and think that this would square the security of the double-encryption scheme. Certainly, an exhaustive search of all possible combination of keys would take formula_1 attempts if each key is n bits long, compared to the formula_2 attempts required for a single key. However, Diffie and Hellman, discovered a time-memory tradeoff that could break the scheme in only double the time to break the single-encryption scheme. The attack works by encrypting from one end and decrypting from the other end, thus meeting in the middle.
Assume the attacker knows a set of plaintext and ciphertext: "P" and "C". That is,
where E is the encryption function (cipher), and "K" and "K" are the two keys.
The attacker can then compute "E"("P") for all possible keys "K" and store the results in memory. Afterwards he can decrypt the ciphertext by computing "D"("C") for each "K". Any matches between these two resulting sets are likely to reveal the correct keys. (To speed up the comparison, the "E"("P") set is stored in an in-memory lookup table, then each "D"("C") can be matched against the values in the lookup table to find the candidate keys.)
Once the matches are discovered, they can be verified with a second test-set of plaintext and ciphertext. If the keysize is "n", this attack uses only formula_4 encryptions (and formula_5 space) in contrast to the naive attack, which needs formula_1 encryptions (but only formula_7 space).
Key whitening
In cryptography, key whitening is a technique used to increase the security of block ciphers. It consists of steps that combine the data with portions of the key (most commonly using a simple XOR) before the first round and after the last round of encryption. DES-X was the first block cipher that used key whitening.
ESTREAM
eSTREAM is a project to identify "new stream ciphers that might become suitable for widespread adoption", organized by the EU ECRYPT network. It was set up because of the failure of all six stream ciphers submitted to the NESSIE project. The call for primitives was first issued in November 2004. The project was completed in April 2008. The project was divided into separate phases and the project goal was to find algorithms suitable for different kinds of application.
MacGuffin (cipher)
In cryptography, MacGuffin is a block cipher created in 1994 by Bruce Schneier and Matt Blaze at a Fast Software Encryption workshop. It was intended as a catalyst for analysis of a new cipher structure, known as Generalized Unbalanced Feistel Networks (GUFNs).
Schneier and Blaze based MacGuffin on DES, their main change was spliting the DES 64 bits data block into two unequal halves in the Feistel network, 48 bits of the 64-bit data block are fed through the round function, whose output is XORed with the other 16 bits of the data block.
MacGuffin's key schedule is a modified version of the encryption algorithm itself. Since MacGuffin is a Feistel network, decryption is easy; simply run the encryption algorithm in reverse.
The algorithm was experimental, intended to explore the security properties of unbalanced Feistel networks. The cryptanalysis proceeded very quickly, so quickly that the cipher was broken using differential cryptanalysis at the same workshop by Vincent Rijmen and Bart Preneel. They also tried attacking MacGuffin with different S-boxes, taken directly from DES. This version was slightly stronger.
Rijmen and Preneel warn that designing an algorithm to resist only known attacks is generally not a good design principle.
Schneier and Blaze recommended using 32 "rounds", and specified MacGuffin with a 128-bit key.
Feistel cipher
In cryptography, a Feistel cipher is a symmetric structure used in the construction of block ciphers, named after the German IBM cryptographer ; it is also commonly known as a Feistel network. A large set of block ciphers use the scheme, including the Data Encryption Standard
The Feistel structure has the advantage that encryption and decryption operations are very similar, even identical in some cases, requiring only a reversal of the key schedule. Therefore the size of the code or circuitry required to implement such a cipher is nearly halved.
Feistel construction is iterative in nature which makes implementing the cryptosystem in hardware easier.
Feistel networks and similar constructions are product ciphers, and so combine multiple rounds of repeated operations, such as:
Bit shuffling creates the diffusion effect, while substitution is used for confusion.
Many modern symmetric block ciphers use Feistel networks, and the structure and properties of Feistel ciphers have been extensively explored by cryptographers. Specifically, Michael Luby and Charles Rackoff analyzed the Feistel block cipher construction, and proved that if the round function is a cryptographically secure pseudorandom function, with K used as the seed, then 3 rounds is sufficient to make the block cipher a pseudorandom permutation, while 4 rounds is sufficient to make it a "strong" pseudorandom permutation (which means that it remains pseudorandom even to an adversary who gets oracle access to its inverse permutation). Because of this very important result of Luby and Rackoff, Feistel ciphers are sometimes called Luby-Rackoff block ciphers. Further theoretical studies generalized the construction, and defined more precise limits for security.
Let formula_1 be the round function and let
formula_2 be the sub-keys for the rounds formula_3 respectively.
Then the basic operation is as follows:
Split the plaintext block into two equal pieces, (formula_4, formula_5)
For each round formula_6, compute (calculate)
Then the ciphertext is formula_9. (Commonly the two pieces formula_10 and formula_11 are not switched after the last round.)
Decryption of a ciphertext formula_12 is accomplished by computing for formula_13
Then formula_16 is the plaintext again.
One advantage of this model is that the round function formula_1 does not have to be "invertible", and can be very complex.
The diagram illustrates the encryption process. Decryption requires only reversing the order of the subkey formula_18 using the same process; this is the only difference between encryption and decryption:
Unbalanced Feistel ciphers use a modified structure where formula_4 and formula_5 are not of equal lengths. The MacGuffin cipher is an experimental example of such a cipher.
The Feistel construction is also used in cryptographic algorithms other than block ciphers. For example, the Optimal Asymmetric Encryption Padding (OAEP) scheme uses a simple Feistel network to randomize ciphertexts in certain asymmetric-key encryption schemes.
Feistel or modified Feistel:
Blowfish,
Camellia,
CAST-128,
DES,
FEAL,
ICE,
KASUMI,
LOKI97,
Lucifer,
MARS,
MAGENTA,
MISTY1,
RC5,
TEA,
Triple DES,
Twofish,
XTEA,
GOST 28147-89
Generalised Feistel:
CAST-256,
MacGuffin,
RC2,
RC6,
Skipjack
George Wythe
George Wythe (1726 – June 8, 1806), was a lawyer, judge, prominent law professor and "Virginia's foremost classical scholar." Wythe was one of the seven men from Virginia who signed the United States Declaration of Independence.
Wythe served as mayor of Williamsburg, Virginia from 1768 to 1769. In 1779 he was appointed to the newly created Chair of Law at William and Mary, becoming the first law professor in the United States. Wythe's pupils included Thomas Jefferson, Henry Clay, James Monroe, and John Marshall.
Josiah Bartlett
Josiah Bartlett (November 21, 1729– May 19, 1795), was an American physician and statesman, delegate to the Continental Congress for New Hampshire. He signed the Declaration of Independence. He was later Chief Justice of the New Hampshire Superior Court of Judicature and governor of the state.
Carter Braxton