applied cryptography - protocols, algorithms, and source code in c

This reduces the work required for a brute force

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: of operations required to determine the key from a sample of plaintext and ciphertext should be statistically equal to the product of the operations in an encryption times the number of possible keys. (This means that no plaintext attack should be better than brute force.) 3. Knowledge of the algorithm should not defeat the strength of the cipher. (All the security should rest in the key.) 4. A one-bit change of the key should produce a radical change in the ciphertext using the same plaintext, and a 1-bit change of the plaintext should produce a radical change in the ciphertext using the same key. (This is the avalanche effect.) 5. The algorithm should contain a noncommutative combination of substitution and permutation. 6. The algorithm should include substitutions and permutations under the control of both the input data and the key. 7. Redundant bit groups in the plaintext should be totally obscured in the ciphertext. 8. The length of the ciphertext should be the same length as the plaintext. 9. There should be no simple relationships between any possible keys and ciphertext effects. 10. Any possible key should produce a strong cipher. (There should be no weak keys.) 11. The length of the key and the text should be adjustable to meet varying security requirements. 12. The algorithm should be efficiently implementable in software on large mainframes, minicomputers, and microcomputers, and in discrete logic. (In fact, the functions used in the algorithm are limited to XOR and bit-shifting.) DES had already met objectives one through nine, but the next three were new. Assuming that the best way to break the algorithm was through brute force, a variable-length key would surely silence those who thought 56 bits was too low. They could implement this algorithm with any key length they desired. And, for anyone who has ever attempted to implement DES in software, an algorithm that took software implementations into account would be welcomed. Description of Madryga Madryga consists of two nested cycles. T...
View Full Document

Ask a homework question - tutors are online