Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОЗІ / Лекц_ї / Лекц_я 8.doc
Скачиваний:
46
Добавлен:
05.06.2015
Размер:
172.54 Кб
Скачать

Використання ланцюжка зашифрованих блоків

Існують різні хеш-функції, засновані на створенні ланцюжку зашифрованих блоків, але без використання секретного ключа. Одна з таких хеш-функцій була запропонована Рабином. Повідомлення М розбивається на блоки фіксованої довжини М1, М2, . . . , МN і використовується алгоритм симетричного шифрування, наприклад DES, для обчислення хеш-коду G у такий спосіб:

Н0 = початкове значення

Нi = EMi [ Hi-1]

G = HN

Це аналогічно використанню шифрування в режимі СВС, але в цьому випадку секретного ключа немає. Як і у випадку будь-який простої хеш-функції, цей алгоритм піддається "атаці дня народження", і якщо алгоритмом, що шифрує, є DES і створюється тільки 64-бітний хеш-код, то система вважається досить уразливою.

Можуть здійснюватися інші атаки типу "дня народження", які можливі навіть у тому випадку, якщо супротивник має доступ тільки до одного повідомлення й відповідний йому зашифрованому хеш-коду й не може одержати трохи пару повідомлень і зашифрованих хеш-кодів. Можливий наступний сценарій: припустимо, що супротивник перехопив повідомлення з автентифікатором у вигляді зашифрованого хеш-коду, і відомо, що незашифрований хеш-код має довжину m біт. Далі супротивник повинен виконати наступні дії:

  • Використовуючи описаний вище алгоритм, обчислити незашифрований хеш-код G.

  • Створити підроблене повідомлення у вигляді Q1, Q2, . . . , QN-2.

  • Обчислити Нi = EQi[ Hi-1] для 1 i N- 2.

  • Створити 2m/2 випадкових блоки Х и для кожного такого блоку Х обчислити ЕХ[ HN-2]. Створити додатково 2m/2 cлучайных блоки Y і для кожного блоку Y обчислити DY[G], де D - функція, що дешифрує, відповідна Е. Ґрунтуючись на "парадоксі дня народження" можна сказати, що з високим ступенем імовірності ця послідовність буде містити блоки Х и Y такі, що ЕХ[HN-2] = DY[Y].

  • Створити повідомлення Q1, Q2, . . . , QN-2, X, Y. Це повідомлення має хеш-код G і, отже, може бути використане разом із зашифрованим автентифікатором.

Ця форма атаки відома як атака "зустріч посередині". У різних дослідженнях пропонуються більш тонкі методи для посилення підходу, заснованого на ланцюжку блоків.

Однак обидві ці схеми також мають уразливості при різних атаках. У більше загальному випадку, можна показати, що деяка форма "атаки дня народження" має успіх при будь-якому хеш-алгоритмі, що включає використання ланцюжка шифрованих блоків без застосування секретного ключа.

Подальші дослідження були спрямовані на пошук інших підходів до створення функцій хеширования.

На сучасному етапі як правило застосовуються хеш-функції md5(rfc 1321) і sha-1 Порівняння sha-1 і md5

Обидва алгоритми, SHA-1 і MD5, відбулися від MD4, тому мають багато загального.

Можна підсумувати ключові розходження між алгоритмами.

MD5

SHA−1

Довжина дайджесту

128 біт

160 біт

Розмір блоку обробки

512 біт

512 біт

Число ітерацій

64 (4 цикли по 16 ітерацій у кожному)

80

Число елементарних логічних функцій

4

3

Число додаткових констант

64

4

Зрівняємо обидва алгоритми відповідно до тих цілей, які були визначені для алгоритму MD4:

  1. Безпека: найбільш очевидне й найбільш важливе розходження полягає в тому, що дайджест SHA-1 на 32 біта довший, ніж дайджест MD5. Якщо припустити, що обидва алгоритми не містять яких-небудь структурованих даних, які уразливі для криптоаналітичних атак, то SHA-1 є більше стійким алгоритмом. Використовуючи лобову атаку, сутужніше створити довільне повідомлення, що має даний дайджест, якщо потрібно порядку 2160 операцій, як у випадку алгоритму SHA-1, ніж порядку 2128 операцій, як у випадку алгоритму MD5. Використовуючи лобову атаку, складніше створити два повідомлення, що мають однаковий дайджест, якщо потрібно порядку 280 як у випадку алгоритму SHA-1, чим порядку 264 операцій як у випадку алгоритму MD5.

  2. Швидкість: так як обидва алгоритми виконують додавання по модулі 232, вони розраховані на 32-бітну архітектуру.SHA-1 містить більше кроків (80 замість 64) і виконується на 160-бітному буфері в порівнянні з 128-бітним буфером MD5. Таким чином, SHA-1 повинен виконуватися приблизно на 25% повільніше, ніж MD5 на тій же апаратурі.

  3. Простота й компактність: обидва алгоритми прості й в описі, і в реалізації, не вимагають більших програм або підстановочних таблиць. Проте, SHA-1 застосовує однокрокову структуру в порівнянні із чотирма структурами, використовуваними в MD5. Більше того, обробка слів у буфері однакова для всіх кроків SHA-1, у той час як в MD5 структура слів специфічна для кожного кроку.

  4. Архітектури little-endian і big-endian: MD5 використовує little-endian схему для інтерпретації повідомлення як послідовності 32-бітних слів, у той час як SHA-1 задіє схему big-endian. Яких-небудь переваг у цих підходах не існує.

Хеш-функції SHA-2

В 2001 році NIST прийняв як стандарт три хеш-функції з істотно більшою довжиною хеш-кода.

Алгоритм

Довжина повідомлення (у бітах)

Довжина блоку (у бітах)

Довжина слова (у бітах)

Довжина дайджесту повідомлення (у бітах)

Безпека (у бітах)

SHA-1

<264

512

32

160

80

SHA-256

<264

512

32

256

128

SHA-384

<2128

1024

64

384

192

SHA-512

<2128

1024

64

512

256

Часто ці хеш-функції називають SHA-2 або SHA-256, SHA-384 і SHA-512 (відповідно, у назві вказується довжина створюваного ними хеш-коду). Ці алгоритми відрізняються не тільки довжиною створюваного хеш-коду, але й довжиною оброблюваного блоку, довжиною слова й використовуваних внутрішніх функцій. Зрівняємо характеристики цих хеш-функций.

Під безпекою тут розуміється стійкість до атак типу "парадокса дня народження".

Хеш-функція ДЕРЖСТАНДАРТ 3411

Алгоритм ДЕРЖСТАНДАРТ 3411 є вітчизняним стандартом для хеш-функций. Його структура досить сильно відрізняється від структури алгоритмів SHA-1,2 або MD5, в основі яких лежить алгоритм MD4.

Довжина хеш-коду, створюваного алгоритмом ДЕРЖСТАНДАРТ 3411, дорівнює 256 бітам. Алгоритм розбиває повідомлення на блоки, довжина яких також дорівнює 256 бітам. Крім того, параметром алгоритму є стартовий вектор хешування Н - довільне фіксоване значення довжиною також 256 біт.

Соседние файлы в папке Лекц_ї