Что может произойти, если использовать предсказуемый IV.
Предположим, имеется алгоритм блочного шифрования E зависящий от ключа k с размером блока b. Также, имеется сообщение m, которое является тайной и используется, предположим, для аутентификации.
Общая схема работы протокола выглядит следующим образом:
Код серверной части протокола.
Код, который решает задачу нахождения секрета
Вся суть приведенного выше сводится к:
Предположим, имеется алгоритм блочного шифрования E зависящий от ключа k с размером блока b. Также, имеется сообщение m, которое является тайной и используется, предположим, для аутентификации.
Общая схема работы протокола выглядит следующим образом:
- Сервер генерирует случайное IV и ключ k; ожидает данные от клиента.
- Клиент генерирует произвольную последовательность r и отправляет
серверу для генерации токена. - Сервер, получив данные от клиента, конкатенирует их с секретом, дополняет
до длины кратной размеру блока (или добавляет новый блок, если длина
получившейся последовательности уже кратна размеру блока) и шифрует
при помощи E, k, IV в режиме CBC - Сервер выбирает новый IV равным последнему блоку зашифрованного текста
- Сервер возвращает клиенту последовательность [IV, N-блоков шифротекста]
- Сервер ожидает получения новых данных и переходит к пункту 3
Код серверной части протокола.
Код, который решает задачу нахождения секрета
Вся суть приведенного выше сводится к:
E(IV ^ P_i) = E(IV ^ C_0 ^ IV ^ (r || i)) = E(C_0 ^ P_1)
Комментариев нет:
Отправить комментарий