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