|
A block cipher transforms a fixed-length block of
plaintext data into a block of ciphertext data of the same length. This
transformation takes place under the action of a user-provided secret key.
Decryption is performed by applying the reverse transformation to the
ciphertext block using the same secret key. The fixed length is called the
block size, and for many block ciphers, the block size is 64 bits.
Since different plaintext blocks are mapped to different
ciphertext blocks (to allow unique decryption), a block cipher
effectively provides a permutation of the set of all possible messages.
The permutation effected during any particular encryption is of course
secret, since it is a function of the secret key.
What is an Iterated Block Cipher
An iterated block cipher is one that encrypts a
plaintext block by a process that has several rounds. In each round, the
same transformation or round function is applied to the data using
a subkey. The set of subkeys are usually derived from the
user-provided secret key by a key schedule.
The number of rounds in an iterated cipher depends on
the desired security level and the consequent trade-off with performance.
In most cases, an increased number of rounds will improve the security
offered by a block cipher, but for some ciphers the number of rounds
required to achieve adequate security will be too large for the cipher to
be practical or desirable.
What is a Feistel Cipher
Feistel ciphers are a
special class of iterated block ciphers where the ciphertext is calculated
from the plaintext by repeated application of the same transformation or
round function. Feistel ciphers are also sometimes called DES-like
ciphers.
In a Feistel cipher, the text being encrypted is split
into two halves. The round function f is applied to one half using
a subkey and the output of f is XOred with the other half. The two
halves are then swapped. Each round follows the same pattern except for
the last round where there is no swap.
A nice feature of a Feistel cipher is that encryption
and decryption are structurally identical, though the subkeys used during
encryption at each round are taken in reverse order during decryption.
It is possible to design iterative ciphers that are not
Feistel ciphers, yet whose encryption and decryption (after a certain
re-ordering or re-calculation of variables) are structurally the same. One
such example is IDEA.
![[Feistel Cipher]](/nav/images/feistel.gif)
What is Exhaustive Key Search
Exhaustive key search, or
brute-force search, is the basic technique of trying every possible
key in turn until the correct key is identified. To identify the correct
key it may be necessary to possess a plaintext and its corresponding
ciphertext, or if the plaintext has some recognizable characteristic,
ciphertext alone might suffice. Exhaustive key search can be mounted on
any cipher and sometimes a weakness in the key schedule of the cipher can
help improve the efficiency of an exhaustive key search attack.
Advances in technology and computing performance will
always make exhaustive key search an increasingly practical attack against
keys of a fixed length. When DES was designed, it
was generally considered secure against exhaustive key search without a
vast financial investment in hardware. Over the years, this line of attack
will become increasingly attractive to a potential adversary.
While the 56-bit key in DES now only offers a few hours
of protection against exhaustive search by a modern dedicated machine, the
current rate of increase in computing power is such that Skipjack’s 80-bit
key can be expected to offer the same level of protection against
exhaustive key search in 18 years time as DES does today.
What is Differential Cryptanalysis
Differential cryptanalysis
is a type of attack that can be mounted on iterative block ciphers. These
techniques were first introduced by Murphy in an attack on FEAL-4, but
they were later improved and perfected by Biham and Shamir who used them
to attack DES. Differential cryptanalysis is basically a chosen plaintext
attack and relies on an analysis of the evolution of the differences
between two related plaintexts as they are encrypted under the same key.
By careful analysis of the available data, probabilities can be assigned
to each of the possible keys and eventually the most probable key is
identified as the correct one.
Differential cryptanalysis has been used against a great
many ciphers with varying degrees of success. In attacks against DES, its
effectiveness is limited by what was very careful design of the S-boxes
during the design of DES in the mid-1970s. Studies on protecting ciphers
against differential cryptanalysis have been conducted by Nyberg and
Knudsen as well as Lai, Massey and Murphy. Differential cryptanalysis has
also been useful in attacking other cryptographic algorithms such as hash
functions.
What is Linear Cryptanalysis
Linear cryptanalysis was
first devised by Matsui and Yamagishi in an attack on FEAL. It was
extended by Matsui to attack DES. Linear cryptanalysis is a known
plaintext attack and uses a linear approximation to describe the behavior
of the block cipher. Given sufficient pairs of plaintext and corresponding
ciphertext, bits of information about the key can be obtained and
increased amounts of data will usually give a higher probability of
success.
There have been a variety of enhancements and
improvements to the basic attack. Langford and Hellman introduced an
attack called differential-linear cryptanalysis which combines
elements of differential cryptanalysis with those of linear cryptanalysis.
Also, Kaliski and Robshaw showed that a linear cryptanalytic attack using
multiple approximations might allow for a reduction in the amount of data
required for a successful attack. Other issues such as protecting ciphers
against linear cryptanalysis have been considered by Nyberg, Knudsen, and
O’Conner.
What is a Weak Key for a Block Cipher
Weak keys are secret keys
with a certain value for which the block cipher in question will exhibit
certain regularities in encryption or, in other cases, a poor level of
encryption. For instance, with DES there are four keys for which
encryption is exactly the same as decryption. This means that if one were
to encrypt twice with one of these weak keys, then the original plaintext
would be recovered. For IDEA there is a class of keys for which
cryptanalysis is greatly facilitated and the key can be recovered.
However, in both these cases, the number of weak keys is such a small
fraction of all possible keys that the chance of picking one at random is
exceptionally slight. In such cases, they pose no significant threat to
the security of the block cipher when used for encryption.
Of course for other block ciphers, there might well be a
large set of weak keys (perhaps even with the weakness exhibiting itself
in a different way) for which the chance of picking a weak key is too
large for comfort. In such a case, the presence of weak keys would have an
obvious impact on the security of the block cipher.
What are Algebraic Attacks
Algebraic attacks are a class of techniques which rely
for their success on some block cipher exhibiting a high degree of
mathematical structure.
For instance, it is conceivable that a block cipher
might exhibit what is termed a group structure. If this were the
case, then encrypting a plaintext under one key and then encrypting the
result under another key would always be equivalent to single encryption
under some other single key. If so, then the block cipher would be
considerably weaker, and the use of multiple encryption would offer no
additional security over single encryption. For most block ciphers, the
question of whether they form a group is still open. For DES, however, it
is known that the cipher is not a group. There are a variety of other
concerns with regards to algebraic attacks.
How Can Data Compression be Used With Encryption
Data compression removes redundant character strings in
a file. This means that the compressed file has a more uniform
distribution of characters. In addition to providing shorter plaintext and
ciphertext, which reduces the amount of time needed to encrypt, decrypt
and transmit a file, the reduced redundancy in the plaintext can
potentially hinder certain cryptanalytic attacks.
By contrast, compressing a file after encryption is
inefficient. The ciphertext produced by a good encryption algorithm should
have an almost statistically uniform distribution of characters. As a
consequence, a compression algorithm should be unable to find redundant
patterns in such text and there will be little, if any, data compression.
In fact, if a data compression algorithm is able to significantly compress
encrypted text, then this indicates a high level of redundancy in the
ciphertext which, in turn, is evidence of poor encryption.
At What Point Does an Attack Become Practical
There is no easy answer to this question since it
depends on many distinct factors. Not only must the work and computational
resources required by the cryptanalyst be reasonable, but the amount and
type of data required for the attack to be successful must also be taken
into account.
One classification distinguishes among cryptanalytic
attacks according to the data they require in the following way: chosen
plaintext or chosen ciphertext, known plaintext, and
ciphertext-only. This classification is not particular to secret-key
ciphers and can be applied to cryptanalytic attacks on any cryptographic
function.
A chosen plaintext or chosen ciphertext
attack gives the cryptanalyst the greatest freedom in analyzing a cipher.
The cryptanalyst chooses the plaintext to be encrypted and analyzes the
plaintext together with the resultant ciphertext to derive the secret key.
Such attacks will, in many circumstances, be difficult to mount but they
should not be discounted. As Merkle and Hellman have remarked, a chosen
text attack can in some ways be viewed as a “certificational weakness” in
a cryptosystem.
A known plaintext attack is more useful to the
cryptanalyst than a chosen plaintext attack (with the same amount of data)
since the cryptanalyst now requires a certain numbers of plaintexts and
their corresponding ciphertexts without specifying the values of the
plaintexts. This type of information is presumably easier to collect.
The most practical attack, but perhaps the most
difficult to actually discover, is a ciphertext-only attack. In
such an attack, the cryptanalyst merely intercepts a number of encrypted
messages and subsequent analysis somehow reveals the key used for
encryption. Note that some knowledge of the statistical distribution of
the plaintext is required for a ciphertext-only attack to succeed.
An added level of sophistication to the chosen text
attacks is to make them adaptive. By this we mean that the cryptanalyst
has the additional power to choose the text that is to be encrypted or
decrypted after seeing the results of previous requests. The computational
effort and resources together with the amount and type of data required
are all important features in assessing the practicality of some attack.
|