Picking any two
cipher, if the key used is the same for both, the second cipher could possibly undo the first cipher, partly or entirely. This is true of ciphers where the decryption process is exactly the same as the encryption process—the second cipher would completely undo the first. If an attacker were to recover the key through cryptanalysisof the first encryption layer, the attacker could possibly decrypt all the remaining layers, assuming the same key is used for all layers.
To prevent that risk, one can use keys that are statistically independent for each layer (e.g. independent RNGs).
The importance of the first layer
With the exception of the
one time pad, no cipher has been theoretically proven to be unbreakable.Thus some recurring properties may be found in the ciphertexts generated by the first cipher. Since those ciphertexts are the plaintexts used by the second cipher, the second cipher will be more vulnerable to attacks based on known plaintext properties (see references below).
This is the case when the first layer is a program P that always add the same string S of characters at the beginning (or end) of all ciphertexts (commonly known as a magic number). When found in a file, the string S allows an
operating systemto know that the program P has to be launched in order to decrypt the file. This string should be removed before adding a second layer.
To prevent this kind of attack, one can use the method provided by
Bruce Schneierin the references below: generate 2 random pads of the same size of the plaintext, XORthe plaintext with the first pad , then XOR the result with the second pad, resulting in a first ciphertext. Encrypt each pad with a different cipher and a different key, resulting in 2 more ciphertexts. Concatenate all 3 ciphertexts in order to build the final ciphertext. A cryptanalyst must break both ciphers to get any information.
* A "way to combine multiple block algorithms" so that "a cryptanalyst must break both algorithms" in §15.8 of "Applied Cryptography, Second Edition: Protocols, Algorithms, and Source Code in C" by Bruce Schneier. Wiley Computer Publishing, John Wiley & Sons, Inc.
* S. Even and O. Goldreich, On the power of cascade ciphers, ACM Transactions on Computer Systems, vol. 3, pp. 108–116, 1985.
* M. Maurer and J. L. Massey, Cascade ciphers: The importance of being first, Journal of Cryptology, vol. 6, no. 1, pp. 55–61, 1993.
Wikimedia Foundation. 2010.