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


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

Архитектура построения блочных шифров, доминирующая в настоящее время в традиционной криптографии, в которой весь процесс шифрования блока выполняется за серию шагов (раундов). На каждом раунде блок делится на изменяемую и постоянную части. С помощью функции шифрования из постоянной части и раундового ключа вырабатывается модифицирующий код, который используется для модификации изменяемой части посредством операции гаммирования.[2]

Широкое распространение сети Фейстеля получили потому, что они удовлетворяют всем требованиям к алгоритмам симметричного шифрования и в то же время достаточно просты и компактны.

В ходе шифрации используется функция F, называемая образующей. Каждый раунд состоит из вычисления функции F для одной ветви и побитового выполнения операции XOR результата F с другой ветвью. После этого ветви меняются местами.

Считается, что оптимальное число раундов — от 8 до 32. Важно то, что увеличение количества раундов значительно увеличивает криптостойкость алгоритма.[3][4]

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