Обычно нет.
В криптографии появление «случайных» последовательностей чисел, как правило, весьма подозрительно — что, если есть определенные «слабые» варианты чисел, которые делают всю конструкцию небезопасной? Откуда вы знаете, что дизайнер не воспользовался своей свободой выбора этих чисел для встраивания бэкдора? Обратите внимание, что это делает случаются, известные примеры:
Обратите внимание, что существуют определенные «произвольные константы», которые кажутся менее подозрительными — обычно выбираются цифры $\пи$, или что-то в этом роде (скажем, цифры $\sqrt{2}$ или же $\sqrt{3}$). Их часто называют ничего в моем рукаве, и может использоваться, когда разработчику просто нужны некоторые произвольные числа, которые удовлетворяют некоторым минимальным ограничениям, которым должно удовлетворять «большинство» чисел.
Во всяком случае, возвращаясь к RIPEMD.
Первоначально он был указан в статье 1995 года «Примитивы целостности для безопасных информационных систем». (Я нашел эту информацию через эта ссылка).
В частности, спецификация содержится в этот документ.
Обращаю ваше внимание на 75 страницу документа (на 7 странице pdf).
Четыре константы, используемые в этих операциях, выбраны не случайно; Они
являются целой частью $2^{30}\sqrt{2}, 2^{30}\sqrt{3}, 2^{30}\sqrt[3]{2}, 2^{30}\sqrt[3]{3}$ соответственно. Однако особых причин для такого выбора нет.
Это объясняет константы в добавлены константы
часть файла, на который вы ссылаетесь --- они ничего не значат для меня в рукаве.
К сожалению, конкретная таблица, о которой вы спрашиваете, не имеет удовлетворительного объяснения.
Авторы заявляют, что воспроизводят модификацию функции сжатия MD4 (в том числе и отмеченную вами таблицу), а просто констатируют, что включают в себя модификации Б. ден Бура, которые они цитируют как Личные сообщения (поэтому их конкретная причина модификации неизвестна).
К сожалению, другой материал о шифре также не является информативным.
Рассмотреть возможность эта атака на хеше.
Авторы упоминают (и это очевидно), что индексы «выбор слова сообщения» должны быть именно перестановкой (об этом упоминалось и в исходной спецификации), но это неясно. Почему были выбраны именно эти перестановки.
Последнее, о чем я упомяну, это то, что иногда вы оказываетесь в ситуации, когда существует множество возможных вариантов выбора некоторых из них. структурированный объекта (как перестановка, так что вы не можете надеяться, что цифры $\пи$ будет достаточно), и вам нужно выбрать один.
Одна стратегия, которую вы можете использовать (вместо того, чтобы вытаскивать ее из воздуха):
- попробуйте «ранжировать» структурированные объекты по какому-нибудь показателю эффективности, а затем
- выбрать «первый» (в некотором естественном порядке) из «наиболее эффективных» объектов.
Это расплывчато, поэтому конкретный пример может быть полезен.
Дизайн AES требует арифметических действий. $\mathsf{GF}(2^8)$. Любой неприводимый многочлен степени 8 над $\mathbb{F}_2$ определяет «другую» (но все взаимно изоморфную) копию $\mathsf{GF}(2^8)$.
Учитывая, что это так, какой полином выбрать при разработке AES?
Разработчики AES обосновывают этот выбор (и другие, которые могут показаться вам интересными) в раздел 7 их предложения.
Полином $м(х)$ ... для умножения в $\mathsf{GF}(2^8)$ является первым из списка неприводимых многочленов степени 8, приведенного в [LiNi86, с. 378].
Таким образом, они апеллируют к некоторому порядку авторов, отличных от них.
Я также видел (и думал, что у меня был, в частности, для AES) выбор:
- собрать все неприводимые многочлены
- отсортировать их по весу Хэмминга (показатель эффективности)
- из тех, которые имеют минимальный вес Хэмминга, выбираем лексикографически первый.
Конечно, это, к сожалению, бесполезно для вашей конкретной таблицы.