Загрузка данных
Ниже — готовое решение для Части 4, Части 5 и Части 6 на основе предоставленного файла.
---
Часть 4: Задачи на вычисление с помощью Excel (30 минут)
Задача 1: Моделирование поиска коллизий для слабой функции
Условие:
В столбце A — числа от 1 до 1000.
В столбце B — хеш по формуле:
H(n) = (n^2 + 3*n + 5) mod 50
Формула для B1: =MOD((A1*A1 + 3*A1 + 5); 50)
Что нужно сделать:
1. Заполнить A1:A1000 числами от 1 до 1000.
2. В B1 ввести формулу и скопировать её до B1000.
3. Выделить B1:B1000 → Главное меню → Условное форматирование → Правила выделения ячеек → Повторяющиеся значения.
4. Найти несколько пар чисел из столбца A, которые дают одинаковый хеш (коллизии).
Пример решения (фрагмент):
A (n) B (H(n))
1 9
2 15
3 23
4 33
5 45
6 9
7 25
8 43
9 13
10 35
11 9
12 35
13 13
14 43
15 25
16 9
17 45
18 33
19 23
20 15
21 9
... ...
Найденные коллизии (примеры):
· H(1) = H(6) = H(11) = H(16) = H(21) = ... = 9
· H(2) = H(20) = 15
· H(3) = H(19) = 23
· H(4) = H(18) = 33
· H(5) = H(17) = 45
· H(7) = H(15) = 25
· H(8) = H(14) = 43
· H(9) = H(13) = 13
· H(10) = H(12) = 35
Ответ:
Коллизии есть, например:
· (1, 6) → H = 9
· (2, 20) → H = 15
· (3, 19) → H = 23
· (4, 18) → H = 33
· (5, 17) → H = 45
· (7, 15) → H = 25
· (8, 14) → H = 43
· (9, 13) → H = 13
· (10, 12) → H = 35
---
Задача 2: Анализ распределения хешей
Что нужно сделать:
1. Построить гистограмму распределения значений хешей из столбца B.
2. Ответить: является ли распределение равномерным? Сделать вывод о стойкости функции.
Анализ:
Функция H(n) = (n^2 + 3n + 5) mod 50 даёт значения от 0 до 49.
Из-за модуля 50 и квадратичной зависимости распределение не равномерное: некоторые значения встречаются чаще, другие — реже или отсутствуют.
Вывод:
Распределение хешей неравномерное, что снижает стойкость функции. Это означает, что вероятность коллизий выше, чем у идеальной хеш-функции. Такая функция не является криптографически стойкой.
---
Часть 5: Контрольные вопросы (15 минут)
1. Объясните разницу между атакой на прообраз и атакой на коллизию. Какая из них практически осуществима для современных хеш-функций (например, SHA-256)?
· Атака на прообраз: по заданному хешу h найти сообщение m, такое что H(m) = h. Сложность — O(2^n).
· Атака на коллизию: найти два разных сообщения m1 ≠ m2, таких что H(m1) = H(m2). Сложность — O(2^(n/2)) благодаря парадоксу дней рождений.
Для SHA-256 (n = 256 бит):
· Атака на прообраз: 2^256 — практически невозможна.
· Атака на коллизию: 2^128 — также практически невозможна на современном оборудовании.
Вывод: для SHA-256 обе атаки практически неосуществимы.
---
2. Что такое "радужная таблица" и как использование "соли" (salt) нейтрализует эту атаку?
· Радужная таблица — это предварительно вычисленная таблица цепочек хешей, позволяющая быстро находить прообразы для хешей (например, паролей).
· Соль (salt) — случайная строка, добавляемая к паролю перед хешированием. Она делает каждый хеш уникальным даже для одинаковых паролей.
Нейтрализация:
Злоумышленник не может использовать заранее вычисленную радужную таблицу, так как хеши с солью не совпадают с табличными. Для каждой соли нужно строить новую таблицу, что делает атаку неэффективной.
---
3. Почему атака на коллизию для хеш-функции с длиной выхода n бит имеет сложность O(2^(n/2)), а не O(2^n)?
Это следствие парадокса дней рождений.
Вероятность найти хотя бы одну коллизию среди N случайных значений растёт как:
P ≈ 1 - exp(-N^2 / (2 * 2^n))
При N ≈ 2^(n/2) вероятность превышает 50%.
Таким образом, для нахождения коллизии достаточно перебрать около 2^(n/2) сообщений, а не 2^n.
---
Часть 6: Мини-тест (15 минут)
1. Требование к хеш-функции, означающее невозможность найти два разных сообщения с одинаковым хешем, называется:
· а) Стойкость к прообразу
· б) Стойкость к коллизиям ✅
· в) Стойкость к второму прообразу
· г) Детерминированность
2. "Парадокс дней рождений" применяется для оценки сложности:
· а) Атаки на прообраз
· б) Атаки на второе сообщение
· в) Атаки на коллизии ✅
· г) Всех перечисленных атак
3. Атака с использованием предварительно вычисленных таблиц пар "пароль-хеш" называется:
· а) Атака по времени
· б) Атака "Радужные таблицы" ✅
· в) Атака "Грубая сила"
· г) Дифференциальный криптоанализ
4. Какой длины должен быть хеш в битах, чтобы сложность атаки на коллизии составляла примерно 2^128 операций?
· а) 64 бита
· б) 128 бит
· в) 256 бит ✅
· г) 512 бит
5. Хеш-функции MD5 и SHA-1 на сегодняшний день считаются:
· а) Абсолютно стойкими
· б) Пригодными для всех задач
· в) Уязвимыми из-за возможности практического нахождения коллизий ✅
· г) Пригодными только для хеширования паролей
6. Использование "соли" (salt) эффективно защищает от:
· а) Атаки "грубой силы" на локальную базу хешей
· б) Атаки с помощью "радужных таблиц" ✅
· в) Аналитических атак на алгоритм хеширования
· г) Атаки на коллизии
7. Если хеш-функция имеет длину выхода 80 бит, то оценка сложности атаки перебором на нахождение прообраза составит:
· а) 2^20
· б) 2^40
· в) 2^80 ✅
· г) 2^160
---
Если нужно, могу также оформить это в виде документа Word или PDF.