Чтобы:
- не указан, это может быть любой блочный шифр (с желаемым выходным блоком и размером ключа);
- не указано, это может быть любая константа правильного размера блока;
- не указан, это может быть любой тип заполнения, соответствующий размеру ключа.
Дэвис-Мейер – это строительство для функции сжатия, а не фактический алгоритм, который можно использовать из коробки. Обычно эти параметры описываются для конкретного алгоритма, использующего конструкцию Дэвиса-Мейера.
В принципе, их также можно оставить в качестве параметров конфигурации (аналогично HMAC, где хэш является параметром конфигурации, например, HMAC-SHA-256). Однако для хеш-функций это не является обычным явлением.
Одно из применений такого рода абстракции заключается в том, что для них можно создать доказательство, независимое от используемого блочного шифра - вы, конечно, должны предположить, что блочный шифр не взломан для конкретного случая использования.
Вот соответствующая часть Статья в Википедии об односторонних функциях:
Хеш-функцию можно считать безопасной только в том случае, если
выполняются следующие условия:
- Блочный шифр не имеет особых свойств, отличающих его от идеальных шифров, таких как слабые ключи или ключи, ведущие к идентичным или
связанное шифрование (фиксированные точки или конфликты ключей).
- Полученный размер хеша достаточно велик. Согласно атаке в день рождения, уровень безопасности 280 (обычно считается невозможным для
вычислить сегодня) [необходима цитата] желательно, поэтому размер хеша должен
быть не менее 160 бит.
- Последний блок правильно дополняется по длине перед хешированием. (См. конструкцию Merkle-DamgÃ¥rd.) Обычно используется заполнение длины.
и обрабатывается внутри специализированных хеш-функций, таких как SHA-1 и т. д.
Ниже представлены конструкции: Дэвис-Мейер,
Было показано, что Матиас-Мейер-Осеас, Миягучи-Пренил и Хиросе
безопасный в соответствии с анализом черного ящика.
Для конкретной реализации хэш-функции, которая использует Дэвиса-Мейера, вы можете взглянуть на Семейство хэшей SHA-2. Обратите внимание, что SHA-2 не использует названный блочный шифр; он использует специальный шифр, характерный для SHA-2. Режим заполнения — битовое заполнение, но он имеет индикацию длины. IV указываются для каждой хэш-функции отдельно, их нельзя пропустить.