130 likes | 240 Views
МЕТОД ТА ЗАСІБ ХЕШУВАННЯ ДАНИХ НА ОСНОВІ моделі кватерніона. Бакалаврська дипломна робота на тему:. Розробив: студент групи БС-09б Возний Максим. Керівник: д.т.н ., професор Лужецький В. А. КРИПТОГРАФІЧНІ ХЕШ-ФУНКЦІЇ
E N D
МЕТОД ТА ЗАСІБ ХЕШУВАННЯ ДАНИХ НА ОСНОВІмоделікватерніона Бакалаврська дипломна робота на тему: Розробив: студент групи БС-09б Возний Максим • Керівник:д.т.н., професор • Лужецький В. А.
КРИПТОГРАФІЧНІ ХЕШ-ФУНКЦІЇ Хеш-функція – функція, що перетворює вхідні дані будь-якого розміру в дані фіксованого розміру. h = Н(М) де М – повідомлення довільної довжини, Н(М) – значення функції хешування фіксованої довжини. Властивості криптографічних хеш-функцій • Функція повинна бути застосовною до блоку даних будь-якої довжини. • Функція повинна давати на виході значення фіксованої довжини. • Значення Н(х) повинне обчислюватися відносно легко для будь-якого заданого х. • Для будь-якого даного коду h повинно бути практично неможливо обчислити х, для якого Н(х) = h. Таку властивість іноді називають односторонністю. • Для будь-якого даного блоку х повинно бути практично неможливо обчислити у, для якого Н(х) = Н(у). Таку властивість іноді називають слабкою опірністю колізіям. • Повинно бути практично неможливо обчислити будь-яку пару різних значень х і у, для яких Н(х) = Н(у). Таку властивість іноді називають сильною опірністю колізіям.
ПІДХОДИ ДО ПОБУДОВИ ХЕШ-ФУНКЦІЙ 1.Хеш-функції на основіскладноїматематичноїмоделі; 2. Хеш-функції на основіблоковихшифрів; 3. Хеш-функціїрозробленіз нуля. Хеш-функції на основіскладноїматематичноїмоделі Якщо M = {m1,m2,…,mn} – це інформаційні дані, mi – блок інформаційних даних, hi-1 – попереднє хеш-значення, f(hi-1,mi)–деяка функція,то значення хеш-функції, hi, дорівнюватиме тут g – примітивний елемент, mod p – обчислення за модулем простого числа p.
ПІДХОДИ ДО ПОБУДОВИ ХЕШ-ФУНКЦІЙ Хеш-функції на основіблоковихшифрів Загальна схема, алгоритмівхешування на основіблоковихшифрів: де IH – випадкове початкове значення, A, B і C можуть бути або або константи (можливо рівні 0). Н0 – це деяке випадкове початкове число IH. Чотири безпечні схеми побудови хеш-функцій
ПІДХОДИ ДО ПОБУДОВИ ХЕШ-ФУНКЦІЙ Хеш-функціїрозробленіз нуля Хеш-функції, щорозробляютьсяз нуля, можутьматирізну структуру. Структура хешування Меркле-Дамгаарда Структура Wide-pipe хеш Структурахешуваннягубка
КВАТЕРНІОНИ Кватерніон – це математичний об'єкт вигляду q = a + bi + cj + dk, де a,b,c,d– дійсні числа, i,j,k– уявнікватерніонні одиниці,i2 = j2 = k2 = -1 Правила множеннякватерніонниходиниць: ij = -ji = k, jk = -kj = i, ki = -ik = j. Додавання кватерніонів: q1 = a + bi + cj + dk, q2 = e + fi + gj + hk q1 + q2 = a + e + (b + f)i + (c + g)j + (d + h)k. Віднімання кватерніонів: q1 = a + bi + cj + dk, q2 = e + fi + gj + hk q1- q2 = a - e + (b - f)i + (c - g)j + (d - h)k. Множення кватерніонів: q1 = a + bi + cj + dk, q2 = e + fi + gj + hk q1q2 = (a + bi + cj + dk)( e + fi + gj + hk) = ae - bf - cg - dh + +(af + be)i + (ag + ec)j + (ah + ed)k + (bg - fc)ij + (ch - gd)jk + (df - hb)ki = = ae - bf - cg - dh + (af + be + ch - gd)i+ (ag + ec + df - hb)j + (ah + ed + bg - fc)k.
Метод хешування Дані представляються у вигляді M = {m1,m2,…,mn}. Хеш-функція має вигляд: hi = f(hi-1, mi). Значення hi-1представляється у виглядіhi-1 = {ai-1,bi-1,ci-1,di-1}, або у вигляді кватерніона: hi-1 = ai-1 + bi-1i + ci-1j + di-1k. Блок даних mi представляється у вигляді mi = {ei,fi,gi,hi}, або: mi = ei + fii + gij + hik. Результхеш-функціїhi представляється так: hi = hi-1mi = (ai-1 + bi-1i + ci-1j + di-1k)(ei + fii + gij + hik) = = ai-1ei - bi-1fi - ci-1gi - di-1hi + (ai-1fi + bi-1ei + ci-1hi - gidi-1)i+ + (ai-1gi + eici-1 + di-1f i- hibi-1)j + (ai-1hi + eidi-1 + bi-1gi - fici-1)k, або hi = d{hi-1mi} =d{ai,bi,ci,di}, де: ai = d(ai-1ei - bi-1fi - ci-1gi - di-1hi), bi = d(ai-1f i+ bi-1ei + ci-1hi - gidi-1), ci = d(ai-1gi + eici-1 + di-1fi - hibi-1), di = d(ai-1hi + eidi-1 + bi-1gi - fici-1). Функція d(x) – додавання молодших і старших розрядів аргументах за модулем 2n
СТРУКТУРА ПРИСТРОЮ ХЕШУВАННЯ Пристрій хешування Блок хешування
СТРУКТУРА ПРИСТРОЮ ХЕШУВАННЯ Структурна схема блоку Hash1 Структурна схема блоку Hash2
Початок A Введення імені файлу так Зчитування файлу в пам'ять Mi залишились? ні Видалення символів 0х00 і 0хff h0 = H; і = і++ Введення значення Н Встановлення початкового значення h0 Обчислення 4-го коефіцієнта кватерніона Обчислення третього коефіцієнта кватерніона Обчислення першого коефіцієнта кватерніона Обчислення другого коефіцієнта кватерніона Кінець A • Алгоритм роботи програми Вигляд вікна програми для хешування файлу
Порівняльні оцінки Хеш-функцій Порівняння швидкості хешування при обробці 512 бітівінформаційнихданих на 32-х розрядномупроцесорі