Шифрование и дешифрование IDEA
Международный алгоритм шифрования данных - 128-битный симметричный блочный шифр
Предупреждение о безопасности
IDEA — это устаревший алгоритм. Хотя он исторически значим, для новых приложений, требующих высокой безопасности, рекомендуется использовать AES.
О 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 без уведомления пользователя
Ссылки
Связанные инструменты
AES Шифрование/Дешифрование
Безопасное шифрование и дешифрование текста с использованием алгоритма AES
Blowfish Шифрование/Дешифрование
Быстрый симметричный блочный шифр, разработанный Брюсом Шнайером, с переменной длиной ключа (32-448 бит)
DES/3DES Шифрование/Дешифрование
Шифрование и дешифрование с использованием алгоритмов DES и 3DES с несколькими режимами и опциями заполнения