64-битный вариант SAFER++

Второй вариант алгоритма SAFER++ представляет собой некоторое «усечение» первого варианта до 64-битного размера блока. В данном алгоритме выполняются 8 раундов преобразований, в каждом из которых производятся следующие действия (рис. 3.180) [254]:

1.     Первое наложение ключа. Выполняется аналогично алгоритму SAFER К-64; в качестве ключевого материала здесь используются первые 8 байтов фрагмента расширенного ключа Kt (где i — номер раунда).

2.     Нелинейное преобразование, полностью аналогичное алгоритму SAFER К-64.

3.     Второе наложение ключа, также аналогичное алгоритму SAFER К-64; здесь используются байты 9… 16 фрагмента расширенного ключа Kt.

4.     Расширение 8-байтного блока данных до 16 байтов. Каждый нибл входных байтов формирует старшую половину одного из выходных байтов, младшая половина обнуляется.

5.     Два уровня байтовых перестановок и операций 4-РНТ. Выполняются аналогично основному варианту алгоритма SAFER++.

Рис. 3.180. Раунд 64-битного варианта алгоритма SAFER++

6. Сжатие полученного 16-байтного блока данных до 8 байтов. Каждый из выходных байтов данной операции формируется из старших ниблов двух входных байтов (младшие ниблы остаются равными нулю, исходя из свойств операции 4-РНТ).

По завершении 8 раундов выполняется выходное преобразование, аналогичное первому наложению ключа; здесь используются первые 8 байтов К9.

Процедура расширения ключа полностью аналогична таковой для основного варианта алгоритма SAFER++, но с учетом того, что в данном варианте используется только 9 фрагментов КХ…К9 .

Как и во всех рассмотренных ранее алгоритмах семейства SAFER, расшифровывание выполняется применением обратных операций в обратной последовательности. Структура раунда расшифровывания 64-битного варианта алгоритма SAFER++ приведена на рис. 3.181.

Рис. 3.181. Раунд расшифровывания 64-битного варианта алгоритма SAFER++

Криптоанализ алгоритма SAFER++

В рамках конкурса NESSIE алгоритм SAFER++ был достаточно глубоко исследован. Как отмечают эксперты конкурса [307], SAFER++ не унаследовал каких-либо уязвимостей от более ранних алгоритмов семейства SAFER, а каких-либо новых уязвимостей не было найдено.

Криптоаналитики предложили множество атак на различные варианты алгоритма SAFER++ с усеченным количеством раундов (см., например, [278, 281, 303]), причем предложенная в [87] атака методом бумеранга позволяет вскрыть до 5,5 (из 7) раундов алгоритма (для атаки на 5,5 раундов необходимо 2108 выбранных открытых текстов и шифртекстов с адаптивным выбором и столько же операций шифрования); несмотря на абсолютную непрактичность этой атаки, она позволила экспертам конкурса говорить о недостаточном запасе криптостойкости алгоритма SAFER++.

В результате из-за недостаточного запаса криптостойкости, относительно низкой скорости шифрования (за исключением реализаций для 8-битных платформ) и предположений ряда экспертов о том, что структура SAFER++ может содержать скрытые уязвимости, алгоритм SAFER++ не стал одним из победителей конкурса NESSIE [305].

Заключение

Несмотря на то, что алгоритмы семейства SAFER не получили искомого статуса стандартов США или Евросоюза, стоит сказать о том, что данные алгоритмы нашли достаточно широкое применение. В частности, в [254] отмечается, что SAFER+ используется в качестве основы протокола аутентификации в Bluetooth. В любом случае, видно, что от версии к версии алгоритмов семейства SAFER происходит повышение их криптостойкости в ответ на появление новых атак на данные алгоритмы. Есть уверенность, что история семейства SAFER на алгоритме SAFER++ не закончится.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100