Jump to content

Key clustering

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Intgr (talk | contribs) at 11:42, 20 July 2017 (Tag article as unsourced). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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.