Различные кратные магической константы используются для предотвращения простых атак, основанных на симметрии раундов. Магическая постоянная, 2654435769 или 9E3779B9 16 , выбрана равной , где ϕ - золотое сечение.
Какими свойствами обладает , что делает его полезным в этом контексте?
cr.crypto-security
М.С. Дусти
источник
источник
Ответы:
AFAIK, такие «волшебные» значения имеют следующие два свойства:
Вы можете найти аналогичный случай в MD5 . Рассмотрим следующую строку:
k[i] := floor(abs(sin(i + 1)) × (2 pow 32))
Здесь
sin(i + 1)
предназначен для создания магических ценностей; которые являются уникальными, случайными на вид, и могут работать для многихi
. (На самом деле, вi
диапазоне 0,63).Редактировать: Читая оригинальную статью о ЧАЕ , каждый понимает, что ответ, данный "Стивеном Стадницким", является правильным. Обратите внимание, что волшебная константа - это имя delta:
Поскольку используется только 32 кратных дельты (по одному на каждый раунд), не удивительно, что алгоритм не очень чувствителен к какой-либо конкретной дельте. (См. Ответ Стивена Стадницкого для получения дополнительной информации.)
Редактировать 2: Между прочим, MD4 использует квадратные корни 2 (0x5a827999) и 3 (0x6ed9eba1) в качестве «магических» констант в своих операциях. Раздел 5.4.4 книги « Сетевая безопасность: частное общение в публичном мире» хорошо объясняет это:
Это объяснение совпадает с замечанием, высказанным ниже в комментарии Жиля.
источник
источник
k[i]
, как определено в MD5? (См. Мой ответ выше.)