13
МЕТОД ТА ЗАСІБ ХЕШУВАННЯ ДАНИХ НА ОСНОВІ МОДЕЛІ КВАТЕРНІОНА Розробив: студент групи БС-09б Возний Максим Керівник: д.т.н., професор Лужецький В. А. Бакалаврська дипломна робота на тему:

МЕТОД ТА ЗАСІБ ХЕШУВАННЯ ДАНИХ НА ОСНОВІ моделі кватерніона

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

Блок хешування

СТРУКТУРА ПРИСТРОЮ ХЕШУВАННЯ

Пристрій хешування

Структурна схема блоку Hash2

СТРУКТУРА ПРИСТРОЮ ХЕШУВАННЯ

Структурна схема блоку Hash1

VHDL-МОДЕЛЬ БЛОКУ ХЕШУВАННЯ

Вигляд вікна програми для хешування файлу

АЛГОРИТМ РОБОТИ ПРОГРАМИ

Зчитування файлу в пам'ять

Початок

Введення значення Н

Видалення символів 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

ДЯКУЮ ЗА УВАГУ!