В криптографии эффект лавины является желательным свойством криптографических алгоритмов , как правило, блочных шифров [1] и криптографических хэш-функций , в которых при небольшом изменении входных данных (например, при переворачивании одного бита) выходные данные существенно изменяются (например, половина выходных битов переворачивается). В случае высококачественных блочных шифров такое небольшое изменение либо в ключе , либо в открытом тексте должно вызывать радикальное изменение шифртекста . Фактический термин был впервые использован Хорстом Фейстелем [1] , хотя концепция восходит по крайней мере к диффузии Шеннона .
Если блочный шифр или криптографическая хэш-функция не проявляют лавинный эффект в значительной степени, то у них плохая рандомизация, и, таким образом, криптоаналитик может делать прогнозы о входных данных, имея только выходные данные. Этого может быть достаточно, чтобы частично или полностью взломать алгоритм. Таким образом, лавинный эффект является желательным условием с точки зрения разработчика криптографического алгоритма или устройства. Неспособность включить эту характеристику приводит к тому, что хэш-функция подвергается атакам, включая атаки столкновений , атаки расширения длины и атаки прообраза . [2]
Построение шифра или хэша, демонстрирующего существенный лавинный эффект, является одной из основных целей проектирования, и математически построение использует эффект бабочки . [3] Вот почему большинство блочных шифров являются шифрами произведений . Вот почему хэш-функции имеют большие блоки данных. Обе эти функции позволяют небольшим изменениям быстро распространяться через итерации алгоритма, так что каждый бит выходных данных должен зависеть от каждого бита входных данных до того, как алгоритм завершит работу. [ необходима цитата ]
Строгий критерий лавины ( SAC ) является формализацией лавинного эффекта. Он выполняется, если всякий раз, когда один входной бит дополняется , каждый из выходных битов изменяется с вероятностью 50%. SAC основывается на концепциях полноты и лавины и был введен Вебстером и Таваресом в 1985 году. [4]
Обобщения SAC более высокого порядка включают несколько входных битов. Булевы функции, которые удовлетворяют SAC самого высокого порядка, всегда являются изогнутыми функциями , также называемыми максимально нелинейными функциями, также называемыми «совершенно нелинейными» функциями. [5]
Критерий независимости битов ( BIC ) гласит, что выходные биты j и k должны изменяться независимо, когда любой одиночный входной бит i инвертируется, для всех i , j и k . [6]
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка )