Меня давно интересовал этот абзац:
Умножение — отличная функция смешивания. Если вы разберетесь, как выглядит умножение с точки зрения AND и XOR, станет очевидным, насколько сложным является 64-битное умножение. Количество транзисторов, необходимых для аппаратной реализации, не позволяет использовать умножение в большинстве криптографических алгоритмов. Но для некриптографических PRNG, которые должны работать только на ЦП общего назначения, умножение очень полезно, поскольку уже существует аппаратная реализация.
https://tom-kaitchuck.medium.com/designing-a-new-prng-1c4ffd27124d
Обычно в алгоритмах шифрования используются операции модульного сложения, ротации и исключающего ИЛИ. Но есть ли что-то, что может помешать использованию модульного умножения, поворота и операций исключающего ИЛИ?
Модульное умножение медленнее, чем сложение, но, вероятно, не намного медленнее, и наверняка это более сильная функция микширования. Умножение на самом деле является отличной функцией смешивания, так почему же оно так редко используется в симметричной криптографии? Я думаю, что даже смартфоны могут очень быстро выполнять 64-битное умножение и имеют некоторую аппаратную реализацию для умножения (но я не уверен).
Действительно ли медлительность умножения настолько большая проблема, что умножение не может найти широкого применения в быстрых облегченных алгоритмах шифрования? Вероятно, для устройств Интернета вещей или чипов RFID это может быть проблемой, но когда дело доходит до компьютеров и смартфонов, алгоритм шифрования, основанный на умножении, не может быть проблемой, не так ли?