Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posibnik_1_0.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.93 Mб
Скачать

1.2. Коди автентичності повідомлень на основі des

Одна з найбільш широко використовуваних функцій обчислення значень MAC, звана алгоритмом аутентифікації даних (Data Authentication Algorithm), спирається на використання DES. Опис цього алгоритму існує і як публікація FIPS (PUB FIPS 113), і у вигляді стандарту ANSI (X9.17).

Алгоритм можна визначити як шифрування DES в режимі зчеплення блоків (СВС) з нульовим вектором ініціалізації. Дані (наприклад, повідомлення, запис, файл або програма), яким потрібна аутентифікація, представляються у вигляді послідовності 64-бітових блоків D1, D2, ..., DN. При необхідності, кінцевий блок доповнюється справа нулями, щоб утворився повний 64-бітовий блок. Використовуючи алгоритм Е шифрування DES і секретний ключ К, код автентичності даних (DAC - Data Authentication Code) можна обчислити таким чином (рис. 12.1):

Значення DAC являє собою або весь блок ОN, Або крайні зліва М бітів цього блоку, де 16 <М <64.

Виявляється, що цей алгоритм відповідає всім сформульованим вище вимогам.

2. Функції хешування

Значення функції хешування генерується функцією Н виду

h = Н(М),

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

Рис.12.1. Алгоритм аутентифікації даних (PUB FIPS 113)

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

2.1. Вимоги, що пред'являються до функції хешування

Метою використання функції хешування є отримання "дактилоскопічної" характеристики файлу, повідомлення або взагалі будь-якого блоку даних. Щоб виявитися корисною для аутентифікації повідомлень, функція хешування Н повинна мати такі властивості (сформульовані тут на основі списку з [NECH92]).

  1. Бути застосовною до блоку даних будь-якої довжини.

  2. Давати на виході значення фіксованої довжини.

  3. Значення H(x) повинно обчислюватися відносно легко для будь-якого заданого х, а алгоритм обчислення повинен бути практичним з точки зору як апаратної, так і програмної реалізації.

  4. Для будь-якого даного коду h має бути практично неможливо обчислити х для якого H(x) = h. Таку властивість іноді називають односторонністю.

  5. Для будь-якого даного блоку х повинно бути практично неможливо обчислити у≠ х, для якого H(x) = H(y). Така властивість іноді називають слабкою опірністю колізій.

  6. Повинно бути практично неможливо обчислити будь-яку пару різних значень х та у, для яких H(x) = H(y). Таку властивість іноді називають сильною опірністю коллізіям.

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

Четверта властивість забезпечує однобічність: легко отримати код на основі наявного повідомлення, але практично неможливо відтворити повідомлення, маючи тільки відповідний код. Ця властивість важлива тоді, коли алгоритм аутентифікації припускає використання секретного значення (див. рис. 11.5 (д)). Саме секретне значення безпосередньо не пересилається, але якщо функція хешування не є односторонньою, то противник може визначити секретне значення досить легко: при можливості спостерігати або перехоплювати потік даних він отримає в розпорядження повідомлення М і хеш-код . Потім він розгляне функцію, зворотну функції хешування, і отримає Тепер, коли противник має і М, і SAB || M, відновити значення SAB не складе для нього ніяких труднощів.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]