- •1 Аналіз методів формування хешу
- •Основні поняття функцій хешування
- •Розглянемо основні вимоги до функцій хешування. Нехай, хеш-код створюється функцією н [1]: , де є повідомленням довільної довжини і є хеш-кодом фіксованої довжини.
- •Відомі атаки на функції хешування
- •Аналіз відомих функцій хешування
- •Логіка виконання sha-1. Алгоритм одержує на вході повідомлення максимальної довжини 264 бітів і створює як вихід хеш-код повідомлення довжиною 160 бітів. Алгоритм складається з таких кроків:
- •1.4 Результати проведеного аналізу функцій хешування
- •2 Розробка структури і алгоритму програмного засобу
- •2.1 Розробка структури програми та взаємодії модулів
- •2.2 Розробка алгоритму обчислення хешу на основі еліптичних кривих
- •2.3 Опис модулів з набором параметрів
- •3 Реалізація та аналіз роботи програмного засобу
- •3.1 Обґрунтування вибору засобів реалізації
- •3.2 Програмна реалізація модуля формування обчислень в скінчених полях
- •3.3 Програмна реалізація модуля формування обчислень в групі точок еліптичних кривих
- •3.4 Програмна реалізація модуля обчислення хешу на основі еліптичних кривих
- •3.5 Аналіз роботи програмного засобу
- •Висновки
- •Список використаних джерел
- •Додатки
- •Додаток г
-
Відомі атаки на функції хешування
Проведений аналіз [3, 4] показав, що на односпрямовані і без колізійні хеш-функції можливі такі атаки:
1. Атака “грубою силою” [5] може бути виконана для знаходження прообразу по заданому хеш-значенню або для знаходження прообразу, що дає задане хеш-значення.
2. Атака методом “дня народження” [6] виконується для знаходження двох різних повідомлень з однаковими хеш-значеннями.
3. Атака повного перебору ключів здійснюється для знаходження невідомого секретного сеансового ключа функції формування кодів аутентифікації повідомлень.
4. Атака “зустріч посередині” [7] є модифікацією атаки методом “дня народження” і використовується для хеш-функцій з циклічною структурою, якщо циклова функція може бути інвертована стосовно проміжного значення або блоку повідомлення .
5. Атака з корекцією блоку використовується у випадку, якщо зловмисник має повідомлення і хоче змінити в ньому один або більше блоків без зміни хеш-значення.
6. Атака з фіксованою крапкою [7] може застосовуватися за умови, що циклова функція має одну або кілька фіксованих крапок.
7. Атака на базовий алгоритм шифрування [8] використовується для атаки на хеш-функції, що базуються на блокових симетричних шифрах.
8. Диференціальний аналіз досліджує залежності між вхідними і вихідними значення циклової функції або функції стиснення з метою визначення статистичних аномалій. Диференціальний аналіз застосовується до різних криптографічних систем, включаючи функції хешування [9, 10].
На односпрямовані і безколізійні хеш-функції можливі такі види атаки [10]:
-
обчислення прообразу за заданим значенням . Даний вид атаки є особливо небезпечним для систем автентифікації, що використовують хеш-значення паролів і секретних ключів;
-
обчислення прообразу по заданому прообразу , для якого виконується умова . Така атака може бути використаною для фальсифікації повідомлення, що підписано цифровим підписом;
-
обчислення двох довільних прообразів і , де , для яких виконувалася б умова .
Обчислювальна стійкість хеш-функцій наведена в табл. 1.1, де використовуються такі позначення:
– довжина хеш-значення або коду автентифікації;
– довжина секретного ключа;
– імовірність успішної підробки повідомлення.
Таблиця 1.1 - Обчислювальна стійкість хеш-функцій
Тип хеш-функції |
Ціль атаки |
Ідеальна стійкість |
односпрямована хеш-функція |
знаходження прообраза |
|
знаходження 2-го прообразу |
||
безколізійна хеш-функція |
знаходження будь-якої колізії |
|
функція формування коду автентифікації повідомлення |
точне знаходження ключа |
|
підробка повідомлення |
З табл. 1.1 видно, що найменшою обчислювальною складністю володіє атака на знаходження будь-якої колізії, завдяки чому складність знаходження колізій є головним критерієм стійкості функцій хешування [1].