Алгоритм DES с независимыми ключами раундов
Следующая идея по увеличению ключа шифрования алгоритма DES является наиболее логичной и понятной: DES использует 16 ключей раундов по 48 битов — почему бы не сделать их независимыми и не использовать такой 768-битный ключ (768 = 48*16) вместо 56-битного ключа? Кстати, по похожим принципам ключи используют немало алгоритмов шифрования; в качестве примера можно привести отечественный стандарт шифрования ГОСТ 28147-89, в котором отсутствует процедура расширения ключа, а 256-битный ключ алгоритма просто разбивается на 32-битные фрагменты, каждый из которых участвует в нескольких раундах алгоритма.
Достоинства такого варианта DES очевидны: такой ключ шифрования не только не уменьшит быстродействие алгоритма по сравнению с обычным алгоритмом DES, но даже и увеличит ее за счет отсутствия процедуры расширения ключа (это важно для применений, в которых предусмотрена частая смена ключа шифрования).
Недостатки же таковы: во-первых, большой размер ключа требует несравнимо больше места для хранения и передачи (что становится с течением времени все менее существенным), во-вторых, такой алгоритм оказался уязвим к атаке «встреча посередине», поэтому для полного перебора ключа требуется не 2768, а 2384 попыток, что, однако, не более реально.
Более серьезную уязвимость обнаружили Бихам и Шамир — существует возможность вычисления 768-битного ключа методом дифференциального криптоанализа при наличии 259 выбранных пар «открытый текст — шифр-текст» после выполнения 261 операций шифрования. Авторы атаки посчитали ее непрактичной из-за необходимости в наличии огромного количества выбранных открытых текстов, однако, видно, что DES с независимыми ключами раундов не намного более стоек к дифференциальному криптоанализу, чем классический DES.
Кроме того, атака на связанных ключах, позволяющая полностью раскрыть ключ алгоритма при наличии 15 связанных ключей и 60 выбранных пар «открытый текст — шифртекст»; другой вариант данной атаки позволяет вычислить ключ шифрования, используя всего один связанный с ним ключ, но порядка 216 выбранных открытых текстов.
Также можно предположить и еще один недостаток у данного варианта DES — невозможность использования существующих реализаций классического алгоритма DES, поскольку подавляющее большинство программных и аппаратных средств шифрования сами выполняют расширение ключа, а не принимают уже расширенный ключ в качестве параметра. Поэтому думаю, что подавляющее большинство средств шифрования алгоритмом DES нуждалось бы в серьезной модификации для шифрования с их помощью алгоритмом DES с независимыми ключами раундов.
По материалам книги Сергея Панасенко «Алгоритмы шифрования»
Алгоритмы шифрования