Question
In Applied Cryptography, Bruce Schneier states that there are two kinds of cryptography: cryptography that will keep your kid sister from reading your files; and cryptography that will keep major governments from reading your files. Some people are of the opinion that you shouldn't be keeping secrets from the government. What do you think?
We all understand that proprietary encryption algorithms are to be avoided, because we trust only those algorithms that the cryptography community has had an opportunity to test. What if we choose a publicly known, well-tested algorithm for a particular application but then keep our choice of algorithm secret from everyone except those who absolutely need to know it. Does this policy violate Kerchkoffs's principle?
The DES S-boxes provide "nonlinearity" for the DES algorithm. What is "linearity" and why is it important for cipher designs to avoid it?
How did it come about that IBM's Lucifer algorithm became the "data encryption standard"?
Is it possible that an encryption algorithm could produce ciphertext that is shorter than its plaintext input?
How are block size and key size related? In particular, for a given input (and output) block size, is there a maximum or a minimum key size?
What is base-64 encoding? Why would I use it?
What is "key clustering" and why is it bad?
Solution Preview
This material may consist of step-by-step explanations on how to solve a problem or examples of proper writing, including the use of citations, references, bibliographies, and formatting. This material is made available for the sole purpose of studying and learning - misuse is strictly forbidden.
How are block size and key size related? In particular, for a given input (and output) block size, is there a maximum or a minimum key size?Answer:
A new recommendation, for fixed number of rounds, it that the key size to be equal to the block
size (for example, above mentioned Lucifer algorithm had the same length for block and key: 128 bit).
On the other hand, if the key size is greater than the block size, it means that for some keys, the same input block will be encrypted to the same output block and this is not secure.
The max value of the block size is equal with the key size, so for a given block size, the minimum size of key is the size of block....