Эта статья посвящена модульному арифметическому безопасному хешированию. Для гена MASH-1 см.
ASCL1.
| Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) | Эта статья нужны дополнительные цитаты для проверка. Пожалуйста помоги улучшить эту статью к добавление цитат в надежные источники. Материал, не полученный от источника, может быть оспорен и удален Найдите источники: "МАШ-1" – Новости · газеты · книги · ученый · JSTOR (Апрель 2011 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
| Эта статья предоставляет недостаточный контекст для тех, кто не знаком с предметом. Пожалуйста помоги улучшить статью к обеспечение большего контекста для читателя. (Октябрь 2009 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
(Узнайте, как и когда удалить этот шаблон сообщения) |
МАШ-1 (Модульный арифметический безопасный хеш) это хэш-функция на основе модульная арифметика.
История
Несмотря на множество предложений, несколько хеш-функций, основанных на модульной арифметике, выдержали атаки, и большинство из них, как правило, были относительно неэффективными. MASH-1 вырос из длинной череды связанных предложений, которые последовательно ломались и ремонтировались.
Стандарт
Проект комитета ISO / IEC 10118-4 (ноя 95)
Описание
МАШ-1 предполагает использование ЮАР -подобный модуль
, длина которого влияет на безопасность.
это продукт двух простые числа и должно быть трудно фактор, и для
неизвестной факторизации, безопасность частично основана на сложности извлечения модульных корней.
Позволять
быть длиной блока сообщения в кусочек.
выбирается так, чтобы двоичное представление было на несколько бит длиннее, чем
обычно
.
Сообщение дополняется длиной сообщения и разделяется на блоки.
длины
. Из каждого из этих блоков
, увеличенный блок
длины
создается путем размещения четырех битов из
в нижней половине каждого байта и четыре бита значения 1 в верхней половине. Эти блоки итеративно обрабатываются функцией сжатия:
![{ displaystyle H_ {0} = IV}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5a69893ac3811415bff0d520e48eaae088398914)
![{ Displaystyle H_ {я} = е (B_ {i}, H_ {i-1}) = ((((B_ {i} oplus H_ {i-1}) vee E) ^ {e} { bmod {N}}) { bmod {2}} ^ {L}) oplus H_ {i-1}; quad i = 1, cdots, q}](https://wikimedia.org/api/rest_v1/media/math/render/svg/abd785110540d79f7031c292cb7e0de3ab05b07f)
Где
и
.
обозначает побитовое ИЛИ и
в побитовое XOR.
Из
теперь рассчитываются больше блоков данных
линейными операциями (где
обозначает конкатенацию):
![{ Displaystyle H_ {q} = Y_ {1} , | , Y_ {3} , | , Y_ {0} , | , Y_ {2}; quad | Y_ {i} | = L / 4}](https://wikimedia.org/api/rest_v1/media/math/render/svg/16366a6cddf759424aa99e8afbe0de12e7280090)
![{ Displaystyle Y_ {я} = Y_ {i-1} oplus Y_ {i-4}; quad i = 4, cdots, 15}](https://wikimedia.org/api/rest_v1/media/math/render/svg/313eadda5ecf7c730fabea181a73eb782d5f3af1)
![{ Displaystyle D_ {q + i} = Y_ {2i-2} , | , Y_ {2i-1}; quad i = 1, cdots, 8}](https://wikimedia.org/api/rest_v1/media/math/render/svg/65561a12bca2496e834dfbe41636afcf2943b847)
Эти блоки данных теперь увеличены до
как указано выше, и с ними процесс сжатия продолжается еще с восемью шагами:
![{ Displaystyle H_ {я} = е (B_ {i}, H_ {i-1}); quad i = q + 1, cdots, q + 8}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7147f446208e98aa6a25efe83ffa404ff3423ed6)
Наконец, хеш-значение
, куда
простое число с
.[1]
МАШ-2
Существует более новая версия алгоритма MASH-2 с другим показателем степени. Оригинал
заменяется на
. Это единственное различие между этими версиями.
Рекомендации