Upload
gail-fowler
View
56
Download
0
Embed Size (px)
DESCRIPTION
МЕТОД ТА ЗАСІБ ХЕШУВАННЯ ДАНИХ НА ОСНОВІ моделі кватерніона. Бакалаврська дипломна робота на тему:. Розробив: студент групи БС-09б Возний Максим. Керівник: д.т.н ., професор Лужецький В. А. КРИПТОГРАФІЧНІ ХЕШ-ФУНКЦІЇ - PowerPoint PPT Presentation
Citation preview
МЕТОД ТА ЗАСІБ ХЕШУВАННЯ ДАНИХ НА ОСНОВІ
МОДЕЛІ КВАТЕРНІОНА
Розробив: студент групи БС-09б Возний Максим
Керівник: д.т.н., професор Лужецький В. А.
Бакалаврська дипломна робота на тему:
КРИПТОГРАФІЧНІ ХЕШ-ФУНКЦІЇ
Хеш-функція – функція, що перетворює вхідні дані будь-якого розміру в дані фіксованого розміру.
h = Н(М) де М – повідомлення довільної довжини, Н(М) – значення функції хешування фіксованої довжини.
Властивості криптографічних хеш-функцій
Функція повинна бути застосовною до блоку даних будь-якої довжини. Функція повинна давати на виході значення фіксованої довжини. Значення Н(х) повинне обчислюватися відносно легко для будь-якого заданого х. Для будь-якого даного коду h повинно бути практично неможливо обчислити х, для
якого Н(х) = h. Таку властивість іноді називають односторонністю. Для будь-якого даного блоку х повинно бути практично неможливо обчислити у, для
якого Н(х) = Н(у). Таку властивість іноді називають слабкою опірністю колізіям. Повинно бути практично неможливо обчислити будь-яку пару різних значень х і у,
для яких Н(х) = Н(у). Таку властивість іноді називають сильною опірністю колізіям.
ПІДХОДИ ДО ПОБУДОВИ ХЕШ-ФУНКЦІЙ
1. Хеш-функції на основі складної математичної моделі; 2. Хеш-функції на основі блокових шифрів;3. Хеш-функції розроблені з нуля.
Хеш-функції на основі складної математичної моделі
Якщо M = {m1,m2,…,mn} – це інформаційні дані, mi – блок інформаційних даних, hi-1 – попереднє хеш-значення, f(hi-1,mi) – деяка функція, то значення хеш-функції, hi, дорівнюватиме
тут g – примітивний елемент, mod p – обчислення за модулем простого числа p.
pgh ii mhfi mod),( 1
ПІДХОДИ ДО ПОБУДОВИ ХЕШ-ФУНКЦІЙ
Хеш-функції на основі блокових шифрів
Загальна схема, алгоритмів хешування на основі блокових шифрів:
де IH – випадкове початкове значення, A, B і C можуть бути або або константи (можливо рівні 0). Н0 – це деяке випадкове початкове число IH.
Чотири безпечні схеми побудови хеш-функцій
,)(
,0
CBEH
IH
Ai
H
),(,, 11 iiii HMHM
ПІДХОДИ ДО ПОБУДОВИ ХЕШ-ФУНКЦІЙ
Хеш-функції розроблені з нуля
Хеш-функції, що розробляються з нуля, можуть мати різну структуру.
Структура хешування Меркле-Дамгаарда Структура 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 + hkq1 + q2 = a + e + (b + f)i + (c + g)j + (d + h)k.
Віднімання кватерніонів: q1 = a + bi + cj + dk, q2 = e + fi + gj + hkq1 - q2 = a - e + (b - f)i + (c - g)j + (d - h)k.
Множення кватерніонів: q1 = a + bi + cj + dk, q2 = e + fi + gj + hkq1q2 = (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
Вигляд вікна програми для хешування файлу
АЛГОРИТМ РОБОТИ ПРОГРАМИ
Зчитування файлу в пам'ять
Початок
Введення значення Н
Видалення символів 0х00 і 0хff
Встановлення початкового значення h0
так
ні
Кінець
Mi залишились?
Обчислення першого коефіцієнта
кватерніона
h0 = H;і = і++
Введення імені файлу
Обчислення другого коефіцієнта кватерніона
Обчислення третього коефіцієнта
кватерніона
Обчислення 4-го коефіцієнта кватерніона
A
A
ПОРІВНЯЛЬНІ ОЦІНКИ ХЕШ-ФУНКЦІЙ
Порівняння швидкості хешування при обробці 512 бітів інформаційних даних на 32-х розрядному процесорі
Хеш-функціяДовжина хеш-
значенняКількість операцій
MD5 128 532
SHA 160 1000
Хеш-функція 1 на основі кватерніонів
256 208
Хеш-функція 2 на основі кватерніонів
512 384