- •Лекція 8. Хеш-функції й коди автентифікації повідомлень - мас
- •Вимоги до хеш-функцій
- •Прості хеш-функції
- •Використання ланцюжка зашифрованих блоків
- •На сучасному етапі як правило застосовуються хеш-функції md5(rfc 1321) і sha-1 Порівняння sha-1 і md5
- •Алгоритм обробки одного блоку повідомлення
- •Логіка виконання держстандарт 3411
- •Коди автентифікації повідомлень - мас Вимоги до мас
- •Мас на основі алгоритму симетричного шифрування
Мас на основі алгоритму симетричного шифрування
Для обчислення МАС може використовуватися алгоритм симетричного шифрування (наприклад, DES) у режимі СВС і нульовий инициализационный вектор. У цьому випадку повідомлення представляється у вигляді послідовності блоків, довжина яких дорівнює довжині блоку алгоритму шифрування. При необхідності останній блок доповнюється праворуч нулями, щоб вийшов блок потрібної довжини. Обчислення МАС відбувається за наступною схемою:
МАС1 = EK [P1]
МАС2 = EK [P2 MAC1]
. . .
МАС = EK [PN MACN-1]
MAC = МАС
MAC = МАС МАС на основі хеш-функції
Іншим способом забезпечення цілісності є використання хеш-функції. Хеш-код приєднується до повідомлення в той момент, коли відомо, що повідомлення коректно. Одержувач перевіряє цілісність повідомлення обчисленням хеш-коду отриманого повідомлення й порівнянням його з отриманим хеш-кодом, що повинен бути переданий безпечним способом. Одним з таких безпечних способів може бути шифрування хеш-коду закритим ключем відправника, тобто створення підпису. Можливо також шифрування отриманого хеш-коду алгоритмом симетричного шифрування, якщо відправник і одержувач мають загальний ключ симетричного шифрування.
НМАС
Ще один варіант використання хеш-функції для одержання МАС полягає в тому, щоб певним чином додати секретне значення до повідомлення, що подається на вхід хеш-функції. Такий алгоритм зветься НМАС, і він описаний в RFC 2104. При розробці алгоритму НМАС переслідувалися наступні цілі:
можливість використовувати без модифікацій уже наявні хеш-функції;
можливість легкої заміни вбудованих хеш-функцій на більше швидкі або більше стійкі;
збереження швидкості роботи алгоритму, близької до швидкості роботи відповідної хеш-функції;
можливість застосування ключів і простота роботи з ними.
В алгоритмі НМАС хеш-функція являє собою "чорний ящик". Це, по-перше, дозволяє використовувати існуючі реалізації хеш-функцій, а по-друге, забезпечує легку заміну існуючої хеш-функції на нову.
Уведемо наступні позначення:
Н - убудована хеш-функція. |
b - довжина блоку використовуваної хеш-функції. |
n - довжина хеш-кода. |
K - секретний ключ. До цього ключа ліворуч додають нулі, щоб одержати b-бітовий ключ K+. |
Уводиться два допоміжних значення:
Ipad - значення '00110110', повторене b/8 разів. |
Opad - значення '01011010', повторене b/8 разів. |
Далі НМАС обчислюється в такий спосіб:
НМАС = Н ((K+ Opad) || H ((K+ Ipad) || M))