CoderTools

Шифрование и дешифрование IDEA

Международный алгоритм шифрования данных - 128-битный симметричный блочный шифр

Предупреждение о безопасности

IDEA — это устаревший алгоритм. Хотя он исторически значим, для новых приложений, требующих высокой безопасности, рекомендуется использовать AES.

IDEA использует фиксированный 128-битный (16 байт) ключ. Ключ должен быть ровно 16 байт.
Параметры формата

О IDEA

IDEA (International Data Encryption Algorithm) разработан Xuejia Lai и James Massey в Федеральной политехнической школе Цюриха (ETH Zurich) в 1991 году как замена DES. В отличие от 56-битного ключа DES, IDEA использует полный 128-битный ключ и обрабатывает 64-битные блоки за 8,5 раундов. Главная особенность — уникальная структура, смешивающая три операции из несовместимых алгебраических групп: XOR, сложение по модулю 2¹⁶ и умножение по модулю 2¹⁶+1.

IDEA был стандартным симметричным шифром в PGP 2.x — наиболее распространённом программном обеспечении для шифрования электронной почты в 1990-х годах. Патент (принадлежавший MediaCrypt AG) истёк в 2012 году, после чего алгоритм стал общедоступным. Несмотря на возраст, ни одной практической атаки на полную 8,5-раундовую версию опубликовано не было — уязвимости при криптоанализе появляются лишь начиная с 5 сокращённых раундов.

Основные характеристики

  • 128-битный мастер-ключ разворачивается в 52 подключа по 16 бит с помощью циклического сдвига влево
  • 64-битный размер блока — такой же, как у DES, но с существенно большим ключом и числом раундов
  • 8,5 раундов со чередованием XOR, сложения mod 2¹⁶ и умножения mod (2¹⁶+1)
  • Патент истёк в 2012 году во всём мире — свободное использование в открытых и коммерческих проектах

Режимы шифрования

  • CBC: Цепочка зашифрованных блоков — каждый 64-битный блок IDEA перед шифрованием XOR-ится с предыдущим блоком шифртекста. 64-битный IV не позволяет одинаковым блокам открытого текста давать одинаковый шифртекст. Рекомендуется для общего шифрования файлов.
  • ECB: Электронная кодовая книга — каждый 64-битный блок шифруется независимо теми же 52 подключами. Одинаковые блоки открытого текста всегда дают одинаковый шифртекст, что может раскрыть структуру данных. Подходит только для шифрования одного изолированного случайного блока.
  • CFB: Обратная связь по шифртексту — IDEA работает как генератор ключевого потока: предыдущий блок шифртекста шифруется, а результат XOR-ится с открытым текстом. Преобразует 64-битный блочный шифр в самосинхронизирующийся потоковый шифр для посимвольной обработки данных.
  • OFB: Обратная связь по выходу — ключевой поток генерируется независимо от открытого текста путём повторного шифрования IV. Предварительно вычисляемый поток и отсутствие распространения ошибок делают OFB подходящим для зашумлённых каналов, где ошибки бит не должны распространяться на последующие блоки.
  • RAW: Сырой блок - Прямое шифрование одного блока без режима сцепления. IV не требуется.

Сравнение алгоритмов

Алгоритм Длина ключа Размер блока Безопасность Скорость
IDEA 128 bits 64 bits Хорошо Быстро
AES 128/192/256 bits 128 bits Отлично Быстро
Blowfish 32-448 bits 64 bits Хорошо Быстро
DES 56 bits 64 bits Слабо Быстро

Соображения безопасности

  • 64-битный размер блока создаёт риск «дня рождения»: после шифрования примерно 2³² блоков (32 ГБ) одним ключом вероятность коллизии заметно возрастает — в высокопроизводительных приложениях следует заблаговременно менять ключ
  • Сочетание трёх несовместимых алгебраических групп намеренно выбрано для нейтрализации дифференциального и линейного криптоанализа — именно эти два метода атаки были использованы для взлома DES в начале 1990-х; против полных 8,5 раундов IDEA они неэффективны
  • Существует небольшой класс слабых ключей, у которых большие фрагменты подключей состоят только из нулей или единиц; крайне редки (вероятность ≈ 2⁻¹¹⁴), но задокументированы — рекомендуется проверять и отвергать ключи с 16-битными сегментами, целиком нулевыми или единичными
  • Для новых систем выбирайте AES-256-GCM или ChaCha20-Poly1305; IDEA используйте только для совместимости с архивами PGP 2.x или протоколами, явно требующими данный алгоритм

Варианты использования

  • Дешифрование архивов электронной почты PGP 2.x и сообщений S/MIME, использовавших IDEA как стандартный симметричный шифр до стандартизации AES в OpenPGP RFC 4880
  • Встраиваемые платформы с уже реализованным аппаратным ускорением IDEA в кремнии, где замена алгоритма потребовала бы дорогостоящей переработки платы
  • Академические курсы криптографии, сравнивающие шифры со смешанными алгебраическими группами и чистыми SPN-структурами, и объясняющие, почему умножение в Z/(2¹⁶+1) нейтрализует дифференциальные атаки
  • Криминалистическая расшифровка архивных файлов 1990-х, где исходное программное обеспечение по умолчанию использовало IDEA без уведомления пользователя

Ссылки

Быстрое меню

Нет недавних инструментов