Введение

Блок-шифр

В криптографии, MacGuffin — это блочный шифр, разработанный в 1994 году Брюсом Шнайером и Мэттом Блейзом на семинаре по быстрому программному шифрованию. Он задумывался как стимул для анализа новой структуры шифра, известной как обобщённые несбалансированные сети Фейстеля (GUFNs). Криптоанализ продвинулся очень быстро, настолько, что шифр был взломан на том же семинаре Винсентом Рийменом и Бартом Пренелем.

Алгоритм

Шнайер и Блейз основали MacGuffin на DES, их главным изменением было то, что блок данных не разделяется на равные половины в сети Фейстеля. Вместо этого 48 бит 64-битного блока данных подаются в раундовую функцию, выход которой складывается по модулю 2 (XOR) с оставшимися 16 битами блока данных. Алгоритм был экспериментальным и предназначался для изучения свойств безопасности несбалансированных сетей Фейстеля. На соседнем рисунке показан один раунд MacGuffin. 64-битный блок данных разбивается на четыре 16-битных слова (каждое представлено одной линией). Три правых слова складываются по модулю 2 (XOR) с битами подключа, полученными из секретного ключа. Затем они проходят через восемь S-блоков, каждый из которых принимает на вход шесть бит и выдает два бита. Полученный результат (всего 16 бит) рекомбинируется и складывается по модулю 2 (XOR) с самым левым словом блока данных. Новый левый блок затем циклически сдвигается в самую правую позицию результирующего блока данных. Затем алгоритм продолжается с новыми раундами. Расписание ключей MacGuffin является модифицированной версией самого алгоритма шифрования. Поскольку MacGuffin является сетью Фейстеля, расшифровка проста: достаточно запустить алгоритм шифрования в обратном порядке. Шнайер и Блейз рекомендовали использовать 32 раунда и указали, что MacGuffin использует 128-битный ключ.

Криптоанализ МакГаффина

На том же семинаре, где был представлен MacGuffin, Риймен и Пренел показали, что он уязвим к дифференциальному криптоанализу. Они продемонстрировали, что 32 раундов MacGuffin слабее, чем 16 раундов DES, так как для получения хороших дифференциальных характеристик для DES с подходящими начальными значениями требовалось "несколько часов", и столько же времени – для получения хороших дифференциальных характеристик для MacGuffin без начальных значений. Они обнаружили, что с помощью дифференциального криптоанализа можно получить ключ последнего раунда, восстановить последний раунд на его основе, а затем повторить атаку для оставшихся раундов. Риймен и Пренел также пытались атаковать MacGuffin, используя различные S-блоки, взятые непосредственно из DES. Эта версия оказалась немного устойчивее, но они предупреждают, что проектирование алгоритма, устойчивого только к известным атакам, обычно не является хорошим принципом проектирования.