Сучасні інформаційні технології/Інформаційна безпека

Дубчак О.В., Посмашний І.О.

Національний авіаційний університет, Київ, Україна

ОДНОСТОРОННІ ХЕШ-ФУНКЦІЇ

Вступ Розвиток та впровадження інформаційно – комунікаційних систем у повсякденні реалії загострює проблему захисту інформації від несанкціонованого доступу. Одним із засобів розв’язання завдань щодо убезпечення конфіденційних інформаційних ресурсів є використання методів криптографічного закриття - їх шифрування. Крім забезпечення секретності інформації,  криптографічні системи надають можливість автентифікувати та ідентифікувати користувачів, що застосовується у багатьох сучасних базових технологіях безпеки.

Актуальність Поширення Інтернет – мережі, збільшення кількості її користувачів та, відповідно, спроб неправомірного доступу до інформації вимагає застосування програмного забезпечення з високим ступенем безпеки.

Постановка завдання Шифрування за допомогою криптосистеми з відкритим ключем тісно пов’язано з хешуванням (hashing) - перетворенням вихідного масиву даних довільної довжини у результуючий рядок фіксованої довжини. Такі перетворення називаються також хеш - функціями  (hashfunction) або функціями згортки, вихідний масив –  прообразом, а результати перетворення -  хешем, хеш - кодом, хеш - образом, цифровим відбитком або дайджестом повідомлення [1].

Мета Провести порівняльний аналіз найпопулярніших односторонніх хеш - функцій та визначити їх переваги й недоліки.

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

Математично це можна подати наступним чином:

Хеш – функція - , де  - вихідне повідомлення, - результат.

Колізією для функції називається пара значень , така, що  [2].

Хеш - функції зазвичай використовують задля прискорення пошуку даних в БД, перевірки цілісності та автентичності повідомлень, створення стисненого образу для застосування в процедурах електронного цифрового підпису (ЕЦП), захисту пароля в процедурах автентифікації [3].

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

За умов використання хеш-функції під час підписання електронного документу наявні наступні переваги:

¾            обчислювальна складність; що пояснюється значно меншим обсягом хешу цифрового документа відносно обсягу вихідного документа, а алгоритми обчислення хешу є швидшими за алгоритми ЕЦП. Отже, формування хешу документа і його підписування виконується швидше за підписання власно документа;

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

¾            цілісність; оскільки без використання хеш-функції електронний документ значного обсягу у деяких схемах розподіляється на складові для застосування ЕЦП і під час верифікації в такому випадку унеможливлюється визначення наявності та вірності порядку всіх складових.

На даний момент поширено використовуються хеш функції MD5 та SHA.

Алгоритм MD5 (MessageDigest5) у якості вихідних даних використовує повідомлення довільної довжини і видає в результаті 128 - бітове значення профілю повідомлення. Уведені дані обробляються послідовно 512 - бітовими блоками.

Захищений алгоритм хешування SHA-1 (SecureHashAlgorithm) базується на алгоритмі MD4 і має структуру, наближену до MD4. Алгоритм SHA отримує на вхід повідомлення, максимальна довжина якого не має перевершувати 264 бітів, і видає на вихід 160 - бітовий профіль повідомлення. Уведені дані також обробляються 512 - бітовими блоками [4].

Обидва алгоритми схожі, оскільки базуються на основі MD4, з чого випливає подібність їх захищеності та деяких інших характеристик (див.табл.1).

Таблиця 1.

Характеристики MD5 та SHA-1

Характеристика/Хеш

MD5

SHA-1

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

128 біт

160 біт

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

512 біт

512 біт

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

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

80 (4 цикла по 20 ітерацій)

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

4

3

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

64

4

Передбачувана архітектура, біт

32

32

Проведемо порівняння даних алгоритмів з точки зору цілей, що переслідувалися їх авторами при створенні.

 

Захищеність від атак з перебором всіх варіантів. Найбільш очевидною відмінністю між двома алгоритмами є більша довжина профілю SHA-1 за  профіль MD5 (на 32 біти). Відносно перебору всіх варіантів складність завдання знаходження повідомлення має порядок  операцій для MD5 і  для SHA-1. Щодо перебору всіх варіантів складність завдання знаходження будь-якої пари повідомлень має порядок операцій для MD5 і  для SHA-1. Таким чином, SHA-1 є більш захищеним від атак з перебором всіх варіантів.

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

Простота і компактність. Алгоритми функцій відносно прості в описі і реалізації,  не потребують великих програм або таблиць підстановки. Оскільки, обидва засновані на алгоритмі MD4, то містять наступні етапи: додавання бітів заповнювача, додавання значення довжини, ініціалізація буфера MD, обробка повідомлення 512-бітовими блоками (по 16 слів), виведення дайджесту повідомлення.

Використання прямого або зворотного порядку байтів. Алгоритм МD5 для інтерпретації повідомлення у вигляді послідовності 32-бітових слів використовує прямий порядок проходження байтів, тоді як у SHA-1 прийнятий зворотний порядок байтів.

Висновок Хеш-функції SHA-1 та MD5,  що використовуються з метою автентифікації користувачів, перевірки цілісності та автентичності роботи, а також формування та верифікації ЕЦП, є достатньо стійкими до знаходження колізій та знаходження прообразів. У результаті порівняння  їх характеристик можна зробити висновок, що SHA-1 є більш стійкою до атак, проте MD5 має перевагу у швидкості. Отже, якщо потрібна висока швидкість у обробці даних, слід обрати MD5, а якщо вимагається висока криптостійкість, то рекомендується використовувати SHA-1.

Список літератури:

1.     Яковлев А.В. Криптографическая защита информации. URL:  http://www.tstu.ru/book/elib/pdf/2006/shamkin1.pdf

2.     Шнайер Б. Прикладная криптография.  URL:  http://rutracker.org/forum/viewtopic.php

3.     Новиков Е.А. Криптографические методы защиты информации. URL:  http://library.krasn.ru/trudy/2008/Novikov_kript_metod_posobie.pdf

4.     Анисимов В.В. Криптография. URL:  https://sites.google.com/site/anisimovkhv/learning/kripto/lecture/tema9