stringtranslate.com

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

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

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

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

Идея итеративного шифра , использующего многократное применение простых некоммутирующих операций, вызывающих диффузию и путаницу, возникла еще в 1945 году, в тогда еще секретной версии работы К. Э. Шеннона « Теория связи секретных систем »; [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. ^ аб Бирюков и Вагнер 1999.
  4. Шеннон, Клод (1 сентября 1945 г.). «Математическая теория криптографии» (PDF) . п. 97.
  5. ^ Бирюков 2005.
  6. ^ Калиски и Инь 1995, стр. 173.
  7. ^ Данкельман и др. 2020, с. 252.
  8. ^ Байерле и др. 2017.
  9. ^ Робшоу 1995, с. 23.
  10. ^ Шнайер 2000, с. 2.

Источники