ICE (шифр)
Общий | |
---|---|
Дизайнеры | Мэтью Кван |
Впервые опубликовано | 1997 |
Получено из | ПРИНАДЛЕЖАЩИЙ |
Деталь шифрования | |
Размеры ключей | 64 бита (ICE), 64 × n бит (ICE- n ) |
Размеры блоков | 64 бита |
Структура | Сеть Фейстеля |
Раунды | 16 (ICE), 8 (Тонкий-ICE), 16× n (ICE- n ) |
Лучший публичный криптоанализ | |
Дифференциальный криптоанализ может взломать 15 из 16 раундов ICE со сложностью 2. 56 . Thin-ICE можно сломать с помощью 2 27 выбранные открытые тексты с вероятностью успеха 95%. |
В криптографии , ICE ( Information опубликованный Мэтью Кваном в 1997 году . C Oncealment Engine . ) — это симметричным ключом блочный шифр с Алгоритм по структуре аналогичен DES , но с добавлением зависящей от ключа перестановки битов в функции округления . Зависимая от ключа перестановка битов эффективно реализуется программно. Алгоритм ICE не подлежит патентам, а исходный код размещен в свободном доступе.
ICE — это сеть Фейстеля с размером блока 64 бита. Стандартный алгоритм ICE использует 64-битный ключ и имеет 16 раундов. Быстрый вариант Thin-ICE использует всего 8 раундов. Открытый вариант ICE -n использует 16 n раундов с 64 - битным ключом.
Ван Ромпей и др. (1998) попытались применить дифференциальный криптоанализ к ICE. Они описали атаку на Thin-ICE, которая восстанавливает секретный ключ с помощью 2 23 выбранные открытые тексты с вероятностью успеха 25%. Если 2 27 используются выбранные открытые тексты, вероятность может быть повышена до 95%. Для стандартной версии ICE обнаружена атака на 15 из 16 раундов, требующая 2 56 работа и максимум 2 56 выбранные открытые тексты.
Структура
[ редактировать ]состоящая из 16 раундов ICE — это сеть Фейстеля, . В каждом раунде используется 32 → 32-битная функция F, которая использует 60 бит ключевого материала.
Структура функции F чем-то похожа на DES: входные данные расширяются за счет перекрывающихся полей, расширенные входные данные подвергаются операции XOR с ключом, а результат подается в несколько сокращающихся S-блоков, которые отменяют расширение.
Сначала ICE делит входные данные на 4 перекрывающихся 10-битных значения. Это биты 30, 31 и 0–7 входа для первого 10-битного значения и для следующих значений 6–15, 14–23 и 22–31.
Во-вторых, это ключевая перестановка, уникальная для ICE. Используя 20-битный подраздел перестановки, биты меняются местами между половинами 40-битного расширенного ввода. (Если бит i подключа равен 1, то биты i и i +20 меняются местами.)
В-третьих, 40-битное значение подвергается операции XOR с еще 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, Fast Software Encryption 1998, стр. 270–283 (PDF) .