Mercy — криптоалгоритм, реализующий блочное шифрование и предназначенный для шифрования жестких дисков. Разработан[1] британцем Полом Кроули в 2000 году. Размер блока нетипично объемен и составляет 4096 бит. Шифрование проводится с использованием 16-байтового ключа. Помимо кодируемой информации и ключа алгоритмом используются «твики» (tweaks) — подобия ключей, применяющиеся для обеспечения дополнительной безопасности. Блоки в каждом раунде кодируются общим ключом, при этом каждому блоку соответствует «твик», привязанный к индексу блока и никак не зависимый от ключа.

Mercy
Создатель Пол Кроули
Опубликован 2000 г.
Размер ключа 128 бит
Размер блока 4096 бит
Число раундов 6
Тип Сеть Фейстеля

Основой для Mercy выступает 6-раундная сеть Фейстеля. Функция преобразования каждого раунда использует привязанную к ключу модель конечного автомата, которая заимствует часть своей структуры у архитектуры потокового шифра WAKE. В качестве преобразующей функции используются зависимые от ключа идеальные S-блоки замены. Используемые S-блоки схожи по конструкции с блоками, использующимися в стандарте AES.

В 2001 году против Mercy была проведена[2] успешная публичная атака с использованием дифференциального криптоанализа. Алгоритм крайне неустойчив — статистическая атака успешно работает против шести-, а также семи-раундной разновидностей алгоритма. На использование алгоритма не накладывается никаких лицензионных ограничений, исходный код находится в открытом доступе.

Примечания править

  1. Mercy: a fast large block cipher for disk sector encryption. www.ciphergoth.org. Дата обращения: 29 апреля 2016. Архивировано 10 марта 2016 года.
  2. Paul Crowley. ciphergoth.org: Mercy: Scott Fluhrer's differential attack. www.ciphergoth.org. Дата обращения: 29 апреля 2016. Архивировано 4 марта 2016 года.

Ссылки править