Тема 9. Хеш-функції і генератори псевдовипадкових чисел
53. Означення та властивості хеш-функцій, побудованих на однокрокових стискуючих функціях.
Означення. Хеш-функцією (hash-function) називається однонапрямлена функція , яка відображає множину відкритих повідомлень в множину двійкових векторів фіксованої довжини: , і має наступні властивості:
1) її значення достатньо легко обчислити, тобто знаючи відкрите повідомлення , легко обчислити ;
2) відновити відкрите повідомлення за відомим значенням неможливо протягом реального часу, тобто знаючи , важко визначити , для якого ;
3) знайти довільну пару відкритих повідомлень , , , таку, що , неможливо протягом реального часу (подія, яка полягає в тому, що називається колізією).
Значення хеш-функції для даного аргументу називається хеш-значенням, або хеш-кодом. Хеш-код, тобто образ повідомлення буде значно менше, ніж початкове повідомлення.
Однокрокові стискуючі функції є вектор-функціями від двох змінних вигляду , де аргументи є двійковими векторами довжини , а значення функції – двійковий вектор довжини . Величина є довжиною хеш-коду.
Для обчислення хеш-коду повідомлення розбивається на блоків довжини кратної . Якщо довжина повідомлення не кратна , то останній блок спеціальним способом доповнюють до довжини .До блоків застосовують наступну послідовну процедуру обчислення хеш-коду:
;
, ;
.
де – деякий фіксований початковий вектор.
54. Типи криптографічних хеш-функцій.
Хеш-функції поділяються на два основних типи – ключові та безключові.
Для ключової хеш-функції, тобто такої, при обчисленні значень якої використовується додатковий секретний параметр, скажімо, , значення її хеш-коду називається кодом аутентифікації повідомлення (імітовставкою) і має загальноприйняту абревіатуру МАС (message authentification code). Відповідні процедури обчислення значення ключової хеш-функції називаються алгоритмами обчислення коду аутентифікації повідомлення.
Основні вимоги до безключових хеш-функцій: односторонність, стійкість до колізій та складність заміни одного повідомлення з відомим хеш-кодом іншим повідомленням з тим самим хеш-кодом.
55. Принципи побудови та властивості генераторів псевдовипадкових чисел.
Генератор псевдовипадкових чисел(ГПВЧ)(Pseudorandom number generator, PRNG (англ.)) – алгоритм, що генерує послідовність чисел, якій характерні всі частотні (статистичні) властивості, типові для послідовності реалізацій якої-небудь випадкової величини із заданим законом розподілу. Найбільш поширені випадкові числа, які рівномірно розподілені на відрізку .
Ці послідовності виходять за допомогою математичних алгоритмів із скінченним числом параметрів. Тому не кожен спосіб вибору елементів числової послідовності дає сукупність чисел з бажаними характеристиками.
При побудові генераторів ПВЧ висуваються лише необхідні вимоги до типів вибірок елементів, для яких статистичні властивості відповідають властивостям рівноймовірності і незалежності. Наприклад, можна зажадати, щоб розподіли будь-яких вибірок від одного до десяти чисел на відрізку послідовності не більше 100 практично не відрізнялися від випадкових.
Більшість простих арифметичних генераторів хоча і мають велику швидкість, але страждають від багатьох серйозних недоліків:
- Дуже короткий період/періоди;
- Послідовні значення не є незалежними;
- Деякі біти «менш випадкові», чим інші;
- Нерівномірний одновимірний розподіл;
- Оборотність.
Тому, в криптографії до псевдовипадкових послідовностей чисел висувають наступні вимоги:
1) Великий період;
2) Непередбачуваність зліва, тобто неможливість визначення члена числової послідовності на основі її відомого наступного фрагменту скінченної довжини ;
3) Непередбачуваність справа, тобто неможливість визначення члена числової послідовності на основі її відомого попереднього фрагменту скінченної довжини ;
56. Лінійні конгруентні генератори.
Найбільш відомий на сьогодні ГПВЧ являє собою окремі види алгоритму, який був запропонований Лехмером (Деррік Генрі Лехмер (1905–1991) – американський вчений, працював в університеті Беркли) ще у 1948 році і відомий як метод лінійного конгруента. Послідовність псевдовипадкових чисел отримується за допомогою лінійного рекурентного рівняння
(1)
де – початкове значення (ключ); – множник; – приріст; – модуль, , , . Якщо , , – цілі числа, то утворюється послідовність цілих чисел в діапазоні .
Послідовність, що є розв’язком рівняння (1), називається лінійною конгруентною послідовністю.
57. Генератори псевдовипадкових чисел на основі однонапрямлених функцій з лазівкою. Генератор Блюма–Блюм–Шуба (ВВS).
Принцип роботи генератора BBS:
1. Навмання вибираються два великих псевдовипадкових простих числа і з властивістю , та обчислюється ціле числом Блюма . (числа і зберігаються у таємниці).
2. З мультиплікативної групи лишків випадково вибирається інше ціле число , взаємно просте з числом Блюма : .
3. Обчислюється число , яке буде початковим значенням генератора.
4. За законом утворюється послідовність чисел .
5. Шуканою псевдовипадковою двійковою послідовністю буде послідовність молодших бітів чисел , тобто , .
Псевдовипадкову двійкову послідовністю, згенеровану за цим алгоритмом, позначають як .