Одностороння функція стиснення Міагучі — Пренеля (англ.Miyaguchi-Preneel single-block-length one-way compression function) є розширеним варіантом аналогічної функції Matyas-Meyer-Oseas. Ця функція була незалежно запропонована Бартом Пренелем і Сьодзо Міагучі.
Загальна характеристика
Функція передає кожен блок вихідного повідомлення (m i )як текст, який буде зашифрований в процесі. Далі здійснюється операція XOR () зашифрованого тексту з тим же блоком вихідного повідомлення (m i ), а потім чергово проходять також операції XOR з попереднім значенням геш-функції (H i-1 ) для отримання наступного значення хешу (H i ).
Початкове значення геш-функції (H i-1 ) подають в якості ключа для блочного шифру. У першому раунді, коли немає початкового значення гешу, він використовує постійне, заздалегідь обумовлене, початкове значення (H 0 ).
Якщо блочний шифр має відмінні розміри блоку й ключа, тоді значення геш-функції (H i-1 ) матиме неправильний розмір для використання в якості ключа. Геш-функція пепедається на функцію g () для перетворення, щоб зреагувати, як ключ для шифрування.
У математичній символіці функція стиснення Міагучі-Пренеля може бути описана як:
Схема має швидкість:
Ролі mi та Hi-1 можуть бути змінені місцями так, що H i-1 шифруються ключем m i . Таким чином, функцію стиснення Міагучі — Пренеля можна вважати розширенням методу Девіса — Мейєра[1].