Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpora_z_bezpeki.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
199.17 Кб
Скачать

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

Хеш-функція — функція, що перетворює вхідні дані будь-якого (як правило, великого) розміру в дані фіксованого розміру. Хешування (іноді гешування, англ. hashing) — перетворення вхідного масиву даних довільної довжини у вихідний бітовий рядок фіксованої довжини. Такі перетворення також називаються хеш-функціями абофункціями згортки, а їх результати називають хешем, хеш-кодом або дайджестом повідомлення (англ. message digest).

Хешування застосовується для порівняння даних: якщо у двох масивів хеш-коди різні, масиви гарантовано розрізняються; якщо однакові - масиви, швидше за все, однакові. У загальному випадку однозначної відповідності між вихідними даними і хеш-кодом немає в силу того, що кількість значень хеш-функцій менше, ніж варіантів вхідного масиву; існує безліч масивів, що дають однакові хеш-коди - так звані колізії. Ймовірність виникнення колізій відіграє важливу роль в оцінці якості хеш-функцій. Існує безліч алгоритмів хешування з різними характеристиками (розрядність, обчислювальна складність, крипостійкість тощо). Вибір тієї чи іншої хеш-функції визначається специфікою розв'язуваної задачі. Найпростішими прикладами хеш-функцій можуть служити контрольна сума або CRC. Криптографічна хеш-функція повинна забезпечувати:

  • стійкість до колізій (два різні набори даних повинні мати різні результати перетворення);

  • необоротність (неможливість обчислити вхідні дані за результатом перетворення).

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

  • добра перемішуваність даних;

  • швидкий алгоритм обчислення.

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

Побутовим аналогом хешування в даному випадку може служити розміщення слів у словнику за алфавітом. Перша буква слова є його хеш-кодом, і при пошуку ми переглядаємо не весь словник, а тільки потрібну букву.

5. Способи утворення рівняння Діофанта

Якщо А і Б додатні взаємопрості, то існують такі числа x i y, для яких мають місце рівняння Діофанта ax+by=1. Пошук х і у виконують рухаючись по алгоритму Евкліда знизу вверх.

6. Як формувався ключ у шифрі Віженера? Віженера-Кардано?

Шифр Віженера  — поліалфавітний шифр, який у якості ключа використовує слово. Якщо пронумерувати літери алфавіту від 0 до 32 (а → 0, б → 1, в → 2, …), то шифрування Віженера є можливим представити формулою Ci = (Pi + Kj) mod 33, де Kj — j-та літера ключового слова. Ключове слово повторюється, поки не отримано гаму, рівну довжині повідомлення.

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

8 варіант

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]