Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

125 Кібербезпека / Фаховий екзамен (Бакалавр) / Прикладна криптологія

.pdf
Скачиваний:
87
Добавлен:
23.10.2019
Размер:
4.51 Mб
Скачать

17. Системи шифрування RSA та Ель-Гамаля

18. MDC (коди перевірки повідомлень). Безключові хеш-функції

MDC[ред. ред. код]

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

безповоротність (англ. preimage resistance);

стійкість до колізій першого роду (англ. weak collision resistance);

стійкість до колізій другого роду (англ. strong collision resistance).

Взалежності від того, яким із цих властивостей задовольняють MDC хеш-функції, можна виділити два їх підкласи:

односпрямовані хеш-функції (OWHF, від англ. one-way hash function), які задовольняють властивості безповоротності та стійкі до колізій першого роду;

стійкі до колізій хеш-функції (CRHF, від англ. collision resistant hash function), які стійкі до колізій першого і другого роду (взагалі кажучи, на практиці CRHF хешфункції задовольняють і властивості незворотності).

Існує три основних типи MDC алгоритмів хеш-функцій, за способом їх побудови:

на блокових шифрах; наприклад: алгоритм «Matyas-Meyer-Oseas», алгоритм «Davies-

Meyer», алгоритм «Miyaguchi-Preneel», MDC-2, MDC-4;

спеціальні (англ. customized) алгоритми хешування, в яких робиться наголос на швидкість, і які незалежні від інших компонент системи (в тому числі блочних шифрів або компонент модульного множення, які можуть бути використані для інших цілей). Наприклад: MD4, MD5, SHA-1, SHA-2, RIPEMD-128, RIPEMD-160;

на модульної арифметики; наприклад: MASH-1, MASH-2.

19. MAC’и (Коди аутентифікації повідомлень), як ключові хеш функції

Код аутентифікації повідомлення (Message authentication code - MAC) є криптографічний контрольну суму повідомлення.

алгоритм HMAC

Алгоритм HMAC (Hash-based Message Authentication Code - код аутентифікації повідомлення на основі хешування). Даний вид аутентифікації має на увазі наявність у клієнта і сервера якогось секретного ключа, який відомий тільки їм двом. Тобто це механізм, який використовує криптографічні хеш-функції в поєднанні з секретним ключем. HMAC є одним з варіантів MAC і, отже, використовується для контролю цілісності повідомлень. В даному випадку в основі алгоритму лежить функція хешування, яка дозволяє обчислити код аутентифікації повідомлення.

Принцип роботи

##Розмір ключа вирівнюється з розміром блоку використовуваного алгоритму хешування;

##якщо ключ key довше блоку, він коротшає шляхом застосування до нього використовуваного алгоритму хешування hash:

key = hash (key);

відзначимо, що розмір вихідного значення алгоритму хешування зазвичай багато менше розміру блоку хешіруемих даних - наприклад, відповідно 128 і 512 бітів для алгоритму MD4; рекомендується мінімальний розмір ключа, рівний розміру вихідного значення алгоритму хешування;

##якщо розмір ключа менше розміру блоку, то вирівняний ключ k виходить шляхом доповнення до розміру блоку нульовими бітами вихідного (або укороченого) ключа key.

##Вирівняний ключ k складається по модулю 2 з константою C1, яка представляє собою блок даних, заповнений байтами з шістнадцятковим значенням 36; аналогічним чином ключ k також складається з константою C2, яка представляє собою блок даних, заповнений байтами з шістнадцятковим значенням 5С:

ki = k C1; ko = k C2.

## Обчислюється хеш-значення від результату конкатенації модифікованого ключа ki і повідомлення m:

t = hash (ki || m).

## Вихідним значенням алгоритму HMAC є хеш-значення від результату конкатенації модифікованого ключа ko і отриманого на попередньому кроці значення t:

hmac = hash (ko || t).

Таким чином, при обчисленні HMAC використовується алгоритм хешування застосовується двічі; кожен раз за участю модифікованого ключа. Розмір вихідного значення алгоритму HMAC дорівнює розміру вихідного значення алгоритму хешування, а загальна формула обчислення HMAC (без урахування вирівнювання ключа) виглядає наступним чином:

HMAC (k, m) = hash ((k C2) || hash ((k C1) || m)).

Алгоритми, побудовані за допомогою HMAC, традиційно називають наступним чином:

##«HMAC-x», де «x» - використовуваний алгоритм хешування, наприклад, HMAC-MD4;

##«HMAC-x-k» в тих випадках, де вихідне значення алгоритму хешування може бути усечено (т. Е. Може використовуватися частково); в даному випадку «k» - розмір вихідного значення алгоритму HMAC в бітах; приклад - алгоритм HMAC-SHA1-80.

Принцип використання та швидкодія

Використання алгоритму дозволяє переконатися в цілісності даних, відсутність яких-небудь змін з моменту створення, передачі або збереження довіреною джерелом. Для перевірки такого роду необхідно, щоб дві сторони, які беруть участь в процесі обміну, довіряли один одному і заздалегідь домовилися про використання секретного ключа, який відомий тільки

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

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

крипостійкість

Крипостійкість HMAC залежить, перш за все, від наступних факторів:

##криптостойкость використовуваного алгоритму хешування;

##розмір вихідного значення алгоритму;

##розмір і якість ключа.

Контексти атак на HMAC і «класичне» використання алгоритму хешування помітно різняться. Атакуючий алгоритм HMAC може переслідувати наступні цілі:

##підібрати повідомлення, HMAC якого дорівнює еталонному або дорівнює HMAC еталонного повідомлення;

##це схоже на атаки на класичне застосування алгоритму хешування з пошуку першого або другого прообразу;

##знайти коректну пару «повідомлення - код аутентифікації даного повідомлення» або обчислити код аутентифікації повідомлення для заданого повідомлення без знання секретного ключа;

##отримати ключ, який використовується для обчислення HMAC.

20. Асиметричні перетворення для цифрового підпису.