Функция одностороннего сжатия


В криптографии функция одностороннего сжатия — это функция, которая преобразует два ввода фиксированной длины в вывод фиксированной длины. [1] Преобразование является «односторонним» , что означает, что при наличии определенного вывода сложно вычислить входные данные, которые сжимаются до этого вывода. Функции одностороннего сжатия не связаны с обычными алгоритмами сжатия данных , которые вместо этого могут быть точно инвертированы (сжатие без потерь) или приблизительно (сжатие с потерями) к исходным данным.

Функции одностороннего сжатия, например, используются в конструкции Меркла-Дамгарда внутри криптографических хеш-функций .

Функции одностороннего сжатия часто строятся из блочных шифров . Некоторые методы превращения любого нормального блочного шифра в функцию одностороннего сжатия: Дэвис-Мейер , Матиас-Мейер-Осеас , Миягучи-Пренил (функции сжатия с одинарным блоком) и MDC-2/Meyer-Schilling , MDC-4. , Hirose (функции сжатия с двойной длиной блока). Эти методы подробно описаны ниже. ( MDC-2 — это также название хэш-функции, запатентованной IBM .)

Функция сжатия смешивает два входа фиксированной длины и создает один выход фиксированной длины того же размера, что и один из входов. Это также можно рассматривать как то, что функция сжатия преобразует один большой ввод фиксированной длины в более короткий вывод фиксированной длины.

Например, вход A может быть 128 бит, вход B 128 бит, и они сжимаются вместе в один выход 128 бит. Это эквивалентно сжатию одного 256-битного ввода до одного 128-битного вывода.

Некоторые функции сжатия сжимают не наполовину, а с некоторым другим коэффициентом. Например, вход A может быть 256 бит, а вход B 128 бит, которые сжимаются до одного вывода 128 бит. То есть всего 384 входных бита сжимаются вместе до 128 выходных битов.


Функция одностороннего сжатия
Хэш-конструкция Меркла-Дамгарда. Ячейки, помеченные [f], представляют собой функцию одностороннего сжатия.
Типичный современный блочный шифр
Функция одностороннего сжатия Дэвиса-Мейера.
Функция одностороннего сжатия Матиаса – Мейера – Осеаса
Функция одностороннего сжатия Миягути – Пренеля
Функция сжатия двойной длины блока Hirose