Mercy (шифр)
Mercy — криптоалгоритм, реализующий блочное шифрование и предназначенный для шифрования жестких дисков. Разработан[1] британцем Полом Кроули в 2000 году. Размер блока нетипично объемен и составляет 4096 бит. Шифрование проводится с использованием 16-байтового ключа. Помимо кодируемой информации и ключа алгоритмом используются "твики" (tweaks) — подобия ключей, применяющиеся для обеспечения дополнительной безопасности. Блоки в каждом раунде кодируются общим ключом, при этом каждому блоку соответствует "твик", привязанный к индексу блока и никак не зависимый от ключа.
Mercy | |
---|---|
Создатель | Пол Кроули |
Опубликован | 2000 г. |
Размер ключа | 128 бит |
Размер блока | 4096 бит |
Число раундов | 6 |
Тип | Сеть Фейстеля |
Основой для Mercy выступает 6-раундная сеть Фейстеля. Функция преобразования каждого раунда использует привязанную к ключу модель конечного автомата, которая заимствует часть своей структуры у архитектуры потокового шифра WAKE. В качестве преобразующей функции используются зависимые от ключа идеальные S-блоки замены. Используемые S-блоки схожи по конструкции с блоками, использующимися в стандарте AES.
В 2001 году против Mercy была проведена[2] успешная публичная атака с использованием дифференциального криптоанализа. Алгоритм крайне неустойчив — статистическая атака успешно работает против шести-, а также семи-раундной разновидностей алгоритма. На использование алгоритма не накладывается никаких лицензионных ограничений, исходный код находится в открытом доступе.
Примечания
- Mercy: a fast large block cipher for disk sector encryption . www.ciphergoth.org. Дата обращения: 29 апреля 2016.
- Paul Crowley. ciphergoth.org: Mercy: Scott Fluhrer's differential attack . www.ciphergoth.org. Дата обращения: 29 апреля 2016.