|
Крокові функції стиску та коди автентифікації повідомленьDate: 2015-10-07; view: 371. Досить часто зустрічаються геш-функції, що побудовані у вигляді послідовності ітерацій, на кожному кроці яких застосовуються так звані крокові функції стиску. Крокові функції являють собою вектор-функції від двох змінних. Їхні аргументи - двійкові вектори, а значення, зазавичай, - вектори розмірності Розглянемо типові ітеративні геш-функції, для випадку, коли розмірність аргументів Для обчислення геш-коду Далі обчислюється послідовність ітерацій: У якості геш-коду приймається значення Очевидно, що при обчисленні геш-функцій можна використати секретний параметр, скажимо, У цих випадках значення Прикладом
Виходячи з блокових шифрів можна також будувати геш-функції без секретних параметрів. Для шифрування у якості блоків відкритого тексту можна використовувати як блоки як блоки Аналогично, будь-який з цих блоків можна використовувати як ключі. Наведемо дві відповідні крокові фукції стиску (аргумент
Деколи, як ключи, замість блоків В стандартизованих геш-функціях, скажимо, SHA-1, ГОСТ 34.311-95, застосовуються складні крокові функції стиску. Зокрема, розмірності аргументів крокової функції не обов'язково однакові і не обов'язково співпадають з довжиною геш-коду. Взагалі, слід зауважити, що побудова геш-функцій - дуже складна задача. Низку геш-функцій було дешифровано або послаблено вже після їх опрелюднення та практичного використування. Крім того, якщо ітеративна геш-функція використовує стійку крокову функцію, то стійкість самої геш-функції автоматично не гарантується. Найбільш ймовірно, послаблення діючих геш-функції може здійснюватися за рахунок знаходженя класу колізій, які виникають на двійкових послідовностях, що не відносяться до змістовних даних. Як мінімум такі колізії можна використувати для нав'язування (підміни) ключів.
|