Сучасні інформаційні технології/Інформаційна безпека
Дубчак
О.В., Посмашний І.О.
Національний
авіаційний університет, Київ, Україна
ОДНОСТОРОННІ
ХЕШ-ФУНКЦІЇ
Вступ Розвиток та впровадження інформаційно – комунікаційних систем у повсякденні
реалії загострює проблему захисту інформації від несанкціонованого доступу.
Одним із засобів розв’язання завдань щодо убезпечення конфіденційних
інформаційних ресурсів є використання методів криптографічного закриття - їх
шифрування. Крім забезпечення секретності інформації, криптографічні системи надають можливість автентифікувати та
ідентифікувати користувачів, що застосовується у багатьох сучасних базових
технологіях безпеки.
Актуальність Поширення Інтернет – мережі, збільшення кількості її користувачів та,
відповідно, спроб неправомірного доступу до інформації вимагає застосування
програмного забезпечення з високим ступенем безпеки.
Постановка завдання Шифрування за допомогою криптосистеми з відкритим ключем тісно пов’язано з
хешуванням (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