Студопедия
rus | ua | other

Home Random lecture






Крокові функції стиску та коди автентифікації повідомлень


Date: 2015-10-07; view: 371.


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

Крокові функції являють собою вектор-функції від двох змінних. Їхні аргументи - двійкові вектори, а значення, зазавичай, - вектори розмірності .

Розглянемо типові ітеративні геш-функції, для випадку, коли розмірність аргументів крокової функції дорівнює довжині геш-коду .

Для обчислення геш-коду повідомлення тим, чи іншим, чином доповнюється до довжини кратної та розділяється на блоки: .

Далі обчислюється послідовність ітерацій: , , , де - фіксований несекретний вектор (вектор ініціалізації).

У якості геш-коду приймається значення .

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

У цих випадках значення називається кодом автентифікації повідомлення. Код автентифікації зазвичай позначається абревіатурою (Message Authentication Code).

Прикладом може служити геш-функція, яка грунтується на однокроковій функції стиску, що виконує перетворення за допомогою блокового шифра з ключем : . Процедура обчислення кода автентифікації полягає в наступному.

, , , .

Виходячи з блокових шифрів можна також будувати геш-функції без секретних параметрів. Для шифрування у якості блоків відкритого тексту можна використовувати як блоки як блоки , так і блоки .

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

Наведемо дві відповідні крокові фукції стиску (аргумент приймає значення відповідних блоків ):

, .

Деколи, як ключи, замість блоків розміру використовуються блоки виду розміру , де - довжина ключа , наприклад, .

В стандартизованих геш-функціях, скажимо, SHA-1, ГОСТ 34.311-95, застосовуються складні крокові функції стиску. Зокрема, розмірності аргументів крокової функції не обов'язково однакові і не обов'язково співпадають з довжиною геш-коду.

Взагалі, слід зауважити, що побудова геш-функцій - дуже складна задача.

Низку геш-функцій було дешифровано або послаблено вже після їх опрелюднення та практичного використування. Крім того, якщо ітеративна геш-функція використовує стійку крокову функцію, то стійкість самої геш-функції автоматично не гарантується. Найбільш ймовірно, послаблення діючих геш-функції може здійснюватися за рахунок знаходженя класу колізій, які виникають на двійкових послідовностях, що не відносяться до змістовних даних. Як мінімум такі колізії можна використувати для нав'язування (підміни) ключів.

 


<== previous lecture | next lecture ==>
ЛЕКЦІЯ 5. ІТЕРАТИВНІ ГЕШ-ФУНКЦІЇ ТА КОДИ MAC | Алгоритм НМАС
lektsiopedia.org - 2013 год. | Page generation: 1.493 s.