Слабые ключи
Из-за того, что первоначальный ключ изменяется при получении подключа для каждого этапа алгоритма, определенные первоначальные ключи являются слабыми [721, 427]. Вспомните, первоначальное значение расщепляется на две половины, каждая из которых сдвигается независимо. Если все биты каждой половины равны 0 или 1, то для всех этапов алгоритма используется один и тот же ключ. Это может произойти, если ключ состоит из одних 1, из одних 0, или если одна половина ключа состоит из одних 1, а другая - из одних 0. Кроме того, у два слабых ключа обладают другими свойствами, снижающими их безопасность [427].
Четыре слабых ключа показаны в шестнадцатиричном виде в Табл. 12-11. (Не забывайте, что каждый восьмой бит - это бит четности.)
Табл. 12-11.
Слабые ключи DES
Значение слабого ключа (с битами четности) |
Действительный ключ |
0101 |
0101 |
0101 |
0101 |
0000000 0000000 |
1F1F |
1F1F |
0E0E |
0E0E |
0000000 FFFFFFF |
E0E0 |
E0E0 |
F1F1 |
F1F1 |
FFFFFFF 0000000 |
FEFE |
FEFE |
FEFE |
FEFE |
FFFFFFF FFFFFFF |
Кроме того, некоторые пары ключей при шифровании переводят открытый текст в идентичный шифротекст. Иными словами, один из ключей пары может расшифровать сообщения, зашифрованные другим ключом пары. Это происходит из-за метода, используемого DES для генерации подключей - вместо 16 различных подключей эти ключи генерируют только два различных подключа. В алгоритме каждый из этих подключей используется восемь раз. Эти ключи, называемые полуслабыми ключами, в шестнадцатиричном виде приведены в Табл. 12-12.
Табл. 12-12.
Полуслабые пары ключей DES
01FE |
01FE |
01FE |
01FE |
и |
FE01 |
FE01 |
FE01 |
FE01 |
1FE0 |
1FE0 |
0EF1 |
0EF1 |
и |
E01F |
E01F |
F10E |
F10E |
01E0 |
01E0 |
01F1 |
01F1 |
и |
E001 |
E001 |
F101 |
F101 |
1FFE |
1EEE |
0EFE |
0EFE |
и |
FE1F |
FE1F |
FE0E |
FE0E |
011F |
011F |
010E |
010E |
и |
1F01 |
1F01 |
0E01 |
0E01 |
E0FE |
E0FE |
F1FE |
F1FE |
и |
FEE0 |
FEE0 |
FEE1 |
FEE1 |
Ряд ключей генерирует только четыре подключа, каждый из которых четыре раза используется в алгоритме. Эти возможно слабые ключи перечислены в Табл. 12-13.
Табл. 12-13.
Возможно слабые ключи DES
1F |
1F |
01 |
01 |
0E |
0E |
01 |
01 |
E0 |
01 |
01 |
E0 |
F1 |
01 |
01 |
F1 |
|
01 |
1F |
1F |
01 |
01 |
0E |
0E |
01 |
FE |
1F |
01 |
E0 |
FE |
0E |
01 |
F1 |
|
1F |
01 |
01 |
1F |
0E |
01 |
01 |
0E |
FE |
01 |
1F |
E0 |
FE |
01 |
0E |
F1 |
|
01 |
01 |
1F |
1F |
01 |
01 |
0E |
0E |
E0 |
1F |
1F |
E0 |
F1 |
0E |
0E |
F1 |
|
E0 |
E0 |
01 |
01 |
F1 |
F1 |
01 |
01 |
FE |
01 |
01 |
FE |
FE |
01 |
01 |
FE |
|
FE |
FE |
01 |
01 |
FE |
FE |
01 |
01 |
E0 |
1F |
01 |
FE |
F1 |
0E |
01 |
FE |
|
FE |
E0 |
1F |
01 |
FE |
F1 |
0E |
01 |
E0 |
01 |
1F |
FE |
F1 |
01 |
0E |
FE |
|
E0 |
FE |
1F |
01 |
F1 |
FE |
0E |
01 |
FE |
1F |
1F |
FE |
FE |
0E |
0E |
FE |
|
FE |
E0 |
01 |
1F |
FE |
F1 |
01 |
0E |
1F |
FE |
01 |
E0 |
0E |
FE |
01 |
F1 |
|
E0 |
FE |
01 |
1F |
F1 |
FE |
01 |
0E |
01 |
FE |
1F |
E0 |
01 |
FE |
0E |
F1 |
|
E0 |
E0 |
1F |
1F |
F1 |
F1 |
0E |
0E |
1F |
E0 |
01 |
FE |
0E |
F1 |
01 |
FE |
|
FE |
FE |
1F |
1F |
FE |
FE |
0E |
0E |
01 |
E0 |
1F |
FE |
01 |
F1 |
0E |
FE |
|
FE |
1F |
E0 |
01 |
FE |
0E |
F1 |
01 |
01 |
01 |
E0 |
E0 |
01 |
01 |
F1 |
F1 |
|
E0 |
1F |
FE |
01 |
F1 |
0E |
FE |
01 |
1F |
1F |
E0 |
E0 |
0E |
0E |
F1 |
F1 |
|
FE |
01 |
E0 |
1F |
FE |
01 |
F1 |
0E |
1F |
01 |
FE |
E0 |
0E |
01 |
FE |
F1 |
|
E0 |
01 |
FE |
1F |
F1 |
01 |
FE |
0E |
01 |
1F |
FE |
E0 |
01 |
0E |
FE |
F1 |
|
01 |
E0 |
E0 |
01 |
01 |
F1 |
F1 |
01 |
1F |
01 |
E0 |
FE |
0E |
01 |
F1 |
FE |
|
1F |
FE |
E0 |
01 |
0E |
FE |
F0 |
01 |
01 |
1F |
E0 |
FE |
01 |
0E |
F1 |
FE |
|
1F |
E0 |
FE |
01 |
0E |
F1 |
FE |
01 |
01 |
01 |
FE |
FE |
01 |
01 |
FE |
FE |
|
01 |
FE |
FE |
01 |
01 |
FE |
FE |
01 |
1F |
1F |
FE |
FE |
0E |
0E |
FE |
FE |
|
1F |
E0 |
E0 |
1F |
0E |
F1 |
F1 |
0E |
FE |
FE |
E0 |
E0 |
FE |
FE |
F1 |
F1 |
|
01 |
FE |
E0 |
1F |
01 |
FE |
F1 |
0E |
E0 |
FE |
FE |
E0 |
F1 |
FE |
FE |
F1 |
|
01 |
E0 |
FE |
1F |
01 |
F1 |
FE |
0E |
FE |
E0 |
E0 |
FE |
FE |
F1 |
F1 |
FE |
|
1F |
FE |
FE |
1F |
0E |
FE |
FE |
0E |
E0 |
E0 |
FE |
FE |
F1 |
F1 |
FE |
FE |
Прежде, чем порицать DES слабые ключи, обратите внимание на то, что эти 64 ключа - это крошечная часть полного набора из 72057594037927936 возможных ключей. Если вы выбираете ключ случайно, вероятность выбрать один из слабых ключей пренебрежимо мала. Если вы настоящий параноик, можете всегда проверять "на слабость" сгенерированный ключ. Некоторые думают, что нечего и беспокоиться на этот счет. Другие утверждают, что проверка очень легка, почему бы ее и не выполнить.
Дальнейший анализ слабых и полуслабых ключей приведен в [1116]. Других слабых ключей в процессе исследований найдено не было.