DES weak keys -- SSLeay 0.9.0b -- Janry 1999


DES weak, semi-weak, and possibly weak keys


The following keys are weak keys for DES and should be avoided:


The following keys are semi-weak keys for DES and should be avoided:

01fe01fe01fe01fe    fe01fe01fe01fe01
1fe01fe01fe01fe0    e01fe01fe01fe01f
01e001e001e001e0    e001e001e001e001
1ffe1ffe1ffe1ffe    fe1ffe1ffe1ffe1f
011f011f011f011f    1f011f011f011f01
e0fee0fee0fee0fe    fee0fee0fee0fee0

The following keys are possibly weak keys for DES and should be avoided:

1f1f01010e0e0101    e00101e0f10101f1
011f1f01010e0e01    fe1f01e0fe0e01f1
1f01011f0e01010e    fe011fe0fe010ef1
01011f1f01010e0e    e01f1fe0f10e0ef1
e0e00101f1f10101    e01f01fef10e01fe
fefe0101fefe0101    e0011ffef1010efe
fee01f01fef10e01    fe1f1ffefe0e0efe
fee0011ffef1010e    1ffe01e00efe01f1
e0fe011ff1fe010e    01fe1fe001fe0ef1
e0e01f1ff1f10e0e    1fe001fe0ef101fe
fefe1f1ffefe0e0e    01e01ffe01f10efe

fe1fe001fe0ef101    0101e0e00101f1f1
e01ffe01f10efe01    1f1fe0e00e0ef1f1
fe01e01ffe01f10e    1f01fee00e0ef1f1
e001fe1ff101fe0e    011ffee0010efef1
01e0e00101e1e101    011fe0fe010ef1fe
1ffee0010efef001    0101fefe0101fefe
1ffee0010ef1fe01    1f1ffefe0e0efefe
1fe0e0f10ef1f10e    fefee0e0fefef1f1
01fee01f01fef10e    e0fefee0f1fefef1
01e0fe1f01f1fe0e    fee0e0fefef1f1fe
1ffefe1f0efefe0e    e0e0fefef1f1fefe

There are quite likely typos in this list; it is taken from Bruce Schneier's Applied Cryptography (first ed, p. 235, if you want to double-check).

You can always generate the list yourself; the weak keys are keys that, after striping out the parity bit and doing the first permutation, split into two halves with each half either all 0's or all 1's.

The semi-weak keys are keys that, when you use them to generate the 16 subkeys, generate only two different subkeys instead of 16 different ones.

The possibly weak keys are keys that generate only 4 different subkeys of 16.