Функция ICE Feistel | |
Общий | |
---|---|
Дизайнеров | Мэтью Кван |
Впервые опубликовано | 1997 г. |
Происходит от | DES |
Деталь шифра | |
Ключевые размеры | 64 бита (ICE), 64 × n бит (ICE- n ) |
Размеры блоков | 64 бит |
Структура | Сеть Фейстеля |
Раундов | 16 (ICE), 8 (тонкий-ICE), 16 × n (ICE- n ) |
Лучший публичный криптоанализ | |
Дифференциальный криптоанализ может взломать 15 раундов ICE из 16 со сложностью 2 56 . Thin-ICE может быть взломан с использованием 2 27 выбранных открытых текстов с вероятностью успеха 95%. |
В криптографии , ICE ( я нформация С oncealment Х ngine ) является симметричным ключом блочного шифра опубликованного в 1997 Kwan Алгоритм аналогичен по структуре DES , но с добавлением ключа в зависимости от битовой перестановки в круглой функции. Перестановка битов, зависящая от ключа, эффективно реализована в программном обеспечении. Алгоритм ICE не подлежит патентам, а исходный код размещен в открытом доступе.
ICE - это сеть Фейстеля с размером блока 64 бита. Стандартный алгоритм ICE использует 64-битный ключ и имеет 16 раундов. В быстром варианте Thin-ICE используется всего 8 патронов. Открытый вариант, ICE- n , использует 16 n раундов с 64 n- битным ключом.
Ван Ромпей и др. (1998) попытались применить дифференциальный криптоанализ к ICE. Они описали атаку на Thin-ICE, которая восстанавливает секретный ключ с использованием 2 23 выбранных открытых текстов с вероятностью успеха 25%. Если использовать 2 27 выбранных открытых текстов, вероятность может быть увеличена до 95%. Для стандартной версии ICE была обнаружена атака на 15 раундов из 16, требующая 2 56 работ и не более 2 56 выбранных открытых текстов.
Структура [ править ]
ICE - это 16- канальная сеть Фейстеля . Каждый раунд использует 32 → 32-битную функцию F, которая использует 60 бит ключевого материала.
Структура функции F в чем-то похожа на DES: входные данные расширяются за счет перекрывающихся полей, расширенные входные данные подвергаются операции XOR с ключом, а результат передается в несколько сокращающих S-блоков, которые отменяют раскрытие.
Во-первых, ICE делит ввод на 4 перекрывающихся 10-битных значения. Это биты 0–9, 8–17, 16–25 и 24–33 ввода, где биты 32 и 33 являются копиями битов 0 и 1.
Во-вторых, это перестановка с ключом, уникальная для ICE. Используя 20-битный подключ перестановки, биты меняются местами между половинами 40-битного расширенного ввода. (Если бит i подключа равен 1, то биты i и i +20 меняются местами.)
В-третьих, 40-битное значение обрабатывается методом исключающего ИЛИ с еще 40 битами подключей.
В-четвертых, значение подается через 4 10-битных S-блока, каждый из которых дает 8 бит на выходе. (Они намного больше, чем 8 6 → 4-битные S-блоки DES.)
В-пятых, выходные биты S-блока переставляются так, что выходы каждого S-блока направляются в каждое 4-битное поле 32-битного слова, включая 2 из 8 битов «перекрытия», дублированных во время следующего раунда расширения.
Подобно DES, программная реализация обычно хранит предварительно переставленные S-блоки в 4 справочных таблицах 1024 × 32 бита.
Ссылки [ править ]
- Мэтью Кван, Дизайн алгоритма шифрования ICE, Fast Software Encryption 1997, стр. 69–82 [1] .
- Барт ван Ромпей, Ларс Р. Кнудсен и Винсент Раймен, Дифференциальный криптоанализ алгоритма шифрования ICE, Быстрое программное шифрование, 1998 г., стр. 270–283 (PDF) .