stringtranslate.com

Раунд (криптография)

В криптографии раунд или раундовая функция — это базовое преобразование, которое повторяется ( итерируется ) много раз внутри алгоритма. Разделение большой алгоритмической функции на раунды упрощает как реализацию, так и криптоанализ . [ 1]

Например, шифрование с использованием упрощенного трехраундового шифра можно записать как , где C — это шифротекст , а Pоткрытый текст . Обычно раунды реализуются с использованием одной и той же функции, параметризованной константой раунда и, для блочных шифров , ключом раунда из ключевого расписания . Параметризация необходима для уменьшения самоподобия шифра, что может привести к атакам со скольжением . [1]

Увеличение числа раундов "почти всегда" [2] защищает от дифференциального и линейного криптоанализа , так как для этих инструментов усилия растут экспоненциально с числом раундов. Однако увеличение числа раундов не всегда превращает слабые шифры в сильные, так как некоторые атаки не зависят от числа раундов. [3]

Идея итеративного шифра , использующего повторное применение простых некоммутирующих операций, производящих диффузию и путаницу, восходит к 1945 году, к тогда еще секретной версии работы CE Шеннона « Теория связи секретных систем »; [4] Шеннон был вдохновлен смешивающими преобразованиями, используемыми в области теории динамических систем (ср. подковообразная карта ). Большинство современных шифров используют итеративную конструкцию с числом раундов, обычно выбираемым между 8 и 32 (с 64 и даже 80, используемыми в криптографических хэшах ). [5]

Для некоторых описаний шифров, подобных Фейстелю , в частности, для RC5 , термин « полуцикл » используется для определения преобразования части данных (отличительная черта дизайна Фейстеля). Эта операция соответствует полному циклу в традиционных описаниях шифров Фейстеля (например, DES ). [6]

Круглые константы

Вставка констант, зависящих от раунда, в процесс шифрования нарушает симметрию между раундами и, таким образом, препятствует самым очевидным атакам с использованием скольжения. [3] Этот метод является стандартной функцией большинства современных блочных шифров. Однако неудачный выбор констант раунда или непреднамеренные взаимосвязи между константами и другими компонентами шифра все еще могут позволить проводить атаки с использованием скольжения (например, атакуя начальную версию режима шифрования с сохранением формата FF3). [7]

Многие легкие шифры используют очень простое планирование ключей: раундовые ключи получаются путем добавления раундовых констант к ключу шифрования . Неудачный выбор раундовых констант в этом случае может сделать шифр уязвимым для инвариантных атак; шифры, взломанные таким образом, включают SCREAM и Midori64. [8]

Оптимизация

Дэймен и Раймен утверждают, что одной из целей оптимизации шифра является снижение общей рабочей нагрузки, произведения сложности раунда и количества раундов. Существует два подхода к достижению этой цели: [2]

Шифры с уменьшенным количеством раундов

Методы криптоанализа включают использование версий шифров с меньшим количеством раундов, чем указано их разработчиками. Поскольку один раунд обычно криптографически слаб, многие атаки, которые не работают против полной версии шифров, будут работать против таких вариантов с сокращенным количеством раундов . Результат такой атаки дает ценную информацию о стойкости алгоритма, [9] типичный взлом полного шифра начинается как успех против шифра с сокращенным количеством раундов. [10]

Ссылки

  1. ^ ab Aumasson 2017, стр. 56.
  2. ^ ab Daemen & Rijmen 2013, стр. 74.
  3. ^ ab Бирюков и Вагнер 1999.
  4. ^ Шеннон, Клод (1 сентября 1945 г.). «Математическая теория криптографии» (PDF) . стр. 97.
  5. ^ Бирюков 2005.
  6. ^ Калиски и Инь 1995, стр. 173.
  7. ^ Данкельман и др. 2020, с. 252.
  8. ^ Бейерле и др. 2017.
  9. ^ Робшоу 1995, стр. 23.
  10. ^ Шнайер 2000, стр. 2.

Источники