Key clustering

Key clustering, in cryptography, is two different keys that generate the same ciphertext from the same plaintext by using the same cipher algorithm. A good cipher algorithm, using different keys on the same plaintext, should generate a different ciphertext irrespective of the key length.

If there is a plaintext P, two different keys K1 and K2, and an algorithm A, the two key generate ciphertexts C1 and C2 as follows:

P → A(K1) → C1

P → A(K2) → C2

Key clustering has occurred if C1 and C2 are the same, which should not occur.

Importance

If an attacker tries to break a cipher by a brute-force attack, trying all possible keys until it finds the correct key, key clustering makes it easier to attack a particular cipher text. If there are n possible keys without any key clustering, the attacker needs to try an average of n/2 keys to decrypt it and no more than n keys. If there are two keys that are clustered, the average number of keys is reduced to n/4 and the maximum is n-1 keys. If three keys cluster, the average attempt is only n/6 attempts.

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.