ЗНАЕТЕ ИНТУИТ, Лекция, Криптографски хеш функции
2.1. Въведение
Криптографската хеш функция, обсъдена в C. TCP/IP Protocol Suite приема съобщение с произволна дължина и създава обобщена информация за съобщението с фиксирана дължина. Крайната цел на тази глава е да се обсъдят подробностите за двата най-обещаващи криптографски алгоритми за хеширане - SHA-512 и Водовъртеж. Първо обаче трябва да обсъдим някои общи идеи, които могат да бъдат приложени към всяка криптографска хеш функция. .
Итеративна хеш функция
Всички криптографски хеш функции трябва да генерират дайджест с фиксиран размер от съобщение с променлив размер. Най-добрият начин да използвате тази функция е да използвате итерация. Вместо хеш функция с променлив вход, се извиква функция с фиксиран вход функция за компресия. Той компресира n-битов низ и създава m-битов низ, където n обикновено е по-голямо от m. Тази верига е известна като итеративна криптографска функция.
Схема на Меркел-Дамгард (Меркле-Дамгард)
Схемата на Меркел-Дамгард е итеративна хеш функция, която е устойчива на сблъсък функция на компресия. Това може да бъде доказано, но доказателството е оставено като упражнение. Веригата е показана на фиг. 2.1.

Схемата използва следните стъпки:
- Дължината и подложката на съобщението се добавят в края на съобщението, за да се създаде по-голямо съобщение, което може да бъде разделено равномерно на n-битови блокове; тук n е размерът на блока, който ще бъде обработен от функцията за компресиране.
- След това съобщението се разглежда като t блокове, всеки от които се състои от n бита. Ще обозначим всеки блок като M1. Mt. Обозначаваме дайджеста, създаден в t итерации - H1, H2. Ht
- Преди началото на итерацията, дайджестът H0 се задава на фиксирана стойност, обикновено наричана IV (начална стойност или начален вектор).
- Функцията за компресия обработва Hi-1 и M при всяка итерация, създавайки нов Hi. С други думи, имаме Hi = .f (Hi-1, Mi), където f е функцията за компресия.
- Ht е криптографската хешираща функция на оригиналното съобщение, т.е. h (M) .
Две групи функции за компресия
Схемата на Меркел-Дамгард днес е основата за много криптографски хеширащи функции. Единственото нещо, което трябва да направим, е да проектираме функция за компресия, която е устойчива на сблъсък, и да я вмъкнем в диаграмата на Меркел-Дамгард. Има тенденция да се използват два различни подхода при проектирането на хеш функции. При първия подход функцията за компресиране се извършва от нулата: тя е проектирана точно за тази цел. Във втория подход, симетричен шифър на ключовия блок служи като функция за компресия.
Хеш функции, направени от нулата
Много криптографски хеширащи функции използват компресионни функции, направени от нулата. Тези функции за компресиране са специално проектирани за целта, която обслужват.
Дайджест на съобщението (MD)