Достоинства и недостатки алгоритмов-финалистов
Результаты проделанной аналитиками работы по изучению алгоритмов-финалистов NIST сформулировал в виде отчета. Данный отчет содержит как результаты анализа алгоритмов, так и обоснование критериев, по которым выполнялась оценка. На основе отчета можно кратко сформулировать сравнительные оценки пяти алгоритмов.
Криптостойкость всех алгоритмов-финалистов оказалась достаточной — в процессе исследований не было обнаружено каких-либо практически реализуемых атак на полноценные и полнораундовые версии алгоритмов. В данном случае криптоаналитики обычно исследуют варианты алгоритмов с усеченным количеством раундов, либо с некоторыми внесенными изменениями, незначительными, но ослабляющими алгоритм. Под запасом криптостойкости (security margin) эксперты NIST подразумевают соотношение полного (предусмотренного в спецификациях алгоритмов) количества раундов и максимального из тех вариантов, против которых действуют какие-либо криптоаналитические атаки. Например, с помощью дифференциально-линейного криптоанализа вскрывается 11-раундовый Serpent, тогда как в оригинальном алгоритме выполняется 32 раунда. Эксперты NIST в отчете предупредили, что данная оценка является весьма поверхностной и не может быть значимой при выборе алгоритма — победителя конкурса, но, тем не менее, отметили, что запас криптостойкости у Rijndael и RC6 несколько ниже, чем у остальных алгоритмов-финалистов.
Из описаний алгоритмов видно, что все они поддерживают расширение ключа «на лету» (т. е. подключи могут генерироваться непосредственно в процессе шифрования — по мере необходимости), однако только Serpent и Twofish поддерживают такую возможность без каких-либо ограничений.
Под наличием вариантов реализации (implementation flexibility) имеется в виду возможность по-разному реализовывать какие-либо операции алгоритма, оптимизируя их под конкретные цели. Наиболее показательными в этом смысле являются варианты процедуры расширения ключа алгоритма Twofish, позволяющие оптимизировать реализацию алгоритма в зависимости, прежде всего, от частоты смены ключа.
Сформулируем основные достоинства и недостатки каждого из алгоритмов-финалистов, не ставших победителями конкурса.
В результате победителем конкурса стал алгоритм Rijndael; ему было присвоено название AES, под именем которого он уже достаточно широко реализован и, видимо, по широте распространения обойдет своего предшественника — алгоритм DES.
Выбор экспертов не кажется удивительным — в таблице с характеристиками алгоритмов отчетливо видно, что практически по всем характеристикам Rijndael, как минимум, не уступает остальным алгоритмам-финалистам.
Что же касается алгоритмов Serpent, Twofish, MARS и RC6, то видно, что они практически равнозначны по совокупности характеристик, за исключением алгоритма MARS, имеющего существенно больше недостатков, в том числе алгоритм практически нереализуем в условиях ограниченных ресурсов.
По материалам книги Сергея Панасенко «Алгоритмы шифрования»
Алгоритмы шифрования