Криптографски хеш функции

2.1. Въведение

Криптографската хеш функция, обсъдена в C. TCP/IP Protocol Suite приема съобщение с произволна дължина и създава обобщена информация за съобщението с фиксирана дължина. Крайната цел на тази глава е да се обсъдят подробностите за двата най-обещаващи криптографски алгоритми за хеширане - SHA-512 и Водовъртеж. Първо обаче трябва да обсъдим някои общи идеи, които могат да бъдат приложени към всяка криптографска хеш функция. .

Итеративна хеш функция

Всички криптографски хеш функции трябва да генерират дайджест с фиксиран размер от съобщение с променлив размер. Най-добрият начин да използвате тази функция е да използвате итерация. Вместо хеш функция с променлив вход, се извиква функция с фиксиран вход функция за компресия. Той компресира n-битов низ и създава m-битов низ, където n обикновено е по-голямо от m. Тази верига е известна като итеративна криптографска функция.

Схема на Меркел-Дамгард (Меркле-Дамгард)

Схемата на Меркел-Дамгард е итеративна хеш функция, която е устойчива на сблъсък функция на компресия. Това може да бъде доказано, но доказателството е оставено като упражнение. Веригата е показана на фиг. 2.1.

знаете

Схемата използва следните стъпки:

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

Две групи функции за компресия

Схемата на Меркел-Дамгард днес е основата за много криптографски хеширащи функции. Единственото нещо, което трябва да направим, е да проектираме функция за компресия, която е устойчива на сблъсък, и да я вмъкнем в диаграмата на Меркел-Дамгард. Има тенденция да се използват два различни подхода при проектирането на хеш функции. При първия подход функцията за компресиране се извършва от нулата: тя е проектирана точно за тази цел. Във втория подход, симетричен шифър на ключовия блок служи като функция за компресия.

Хеш функции, направени от нулата

Много криптографски хеширащи функции използват компресионни функции, направени от нулата. Тези функции за компресиране са специално проектирани за целта, която обслужват.

Дайджест на съобщението (MD)

Няколко алгоритми за хеширане са разработени от Ron Rivest. Те са известни в литературата като MD2, MD4 и MD5, където MD означава Message Digest. Последната версия, MD5, е подобрена версия на MD4, която разделя съобщението на 512-битови блокове и създава 128-битово обобщение. Оказа се, че 128-битовият дайджест на съобщението е твърде малък, за да бъде устойчив на атаки на сблъсък.

Алгоритъм за защитен хеш (SHA)

Алгоритъмът за защитен хеш (SHA) е стандарт, разработен от Националния институт по стандарти и технологии (NIST) и публикуван като Федерален стандарт за обработка на информация (FIP 180). Той е посочен в литературата като Secure Hash Standard (SHS - Secure Hash Standard ). Стандартът се основава главно на MD5. През 1995 г. той е преработен под името FIP 180-1, което включва SHA-1. По-късно беше преработен отново под името FIP 180-2, което определя четири нови версии: SHA-224, SHA-256, SHA-384 и SHA-512. раздел. 2.1 са изброени някои от характеристиките на тези версии.

Всички тези версии имат една и съща структура. SHA-512 ще бъде разгледана подробно по-късно в тази глава.

Други алгоритми за поддържане на целостта (RIPMD - Обобщение на съобщенията за оценка на примитивите на RACE).Група криптографски алгоритми за хеширане ( RIPMD ) има няколко версии. RIPEMD-160 е 160-битов алгоритъм за хеширане на дайджест на съобщения. RIPEMD-160 използва същата структура като MD5, но използва две опции.

HAVAL - алгоритъм за хеширане с променлива дължина с дайджести на съобщения с размери 128, 160, 192, 224 и 256. Размер на блока - 1024 бита.

Хеш функции, базирани на блокови шифри

Итерационната криптографска хешираща функция може да използва симетричен шифър на ключовия блок като функция за компресиране. Основната идея зад този подход е, че има няколко сигурни блокови шифри със симетричен ключ, като 3x DES или AES, които могат да се използват за създаване на еднопосочна функция, вместо да се създава нова функция за компресиране. Блоковият шифър в този случай извършва само криптиране. Предложени са няколко схеми. По-късно ще разгледаме един от най-обещаващите - Whirlpool.

Схемата на Рабин. Итеративната хеш функция на Рабин е много проста. Схемата на Рабин се основава на схемата на Меркел-Дамгард. Функцията за компресия се заменя с всеки алгоритъм за криптиране. Блокът за съобщения се използва като ключ; генерираният по-рано дайджест се използва като изходен текст. Ciphertext е новият дайджест на съобщението. Имайте предвид, че размерът на дайджеста е размерът на шифъра на блока данни в основната криптографска система. Например, ако DES се използва като блоков шифър, размерът на дайджеста е само 64 бита. Въпреки че схемата е много проста, тя може да бъде компрометирана от атаката "от средата до средата", обсъдена в Защита на приложния слой: PGP и S/MIME, тъй като противникът може да използва алгоритъма за дешифриране на криптографската система. Фигура: 2.2 показва схемата на Рабин .

лекция

Схема на Дейвис-Майер. Той основно повтаря схемата на Рабин, с изключение на това, че използва директна връзка за защита срещу атака от среден клас.

лекция

Схема на Metyas-Mayer-Oseas. Това е версия на схемата на Дейвис-Майер: блоковете за съобщения се използват като ключове на криптосистема. Схемата може да се използва, ако блоковете данни и ключът за криптиране са с еднакъв размер. Например AES е много подходящ за тази цел.

интуит

Схемата Miaguchi-Presnel е разширена версия на схемата Mathis-Meyer-Oséas. За да се направи алгоритъмът по-устойчив на атаки, оригиналният текст, ключът на шифъра и шифърът са ИЗКЛЮЧИТЕЛНО-ORed и се създава нов дайджест. Тази схема се използва от Whirlpool за създаване на хеш функция. На фиг. 2.5 показва диаграмата на Миагучи-Пренел .