Шифрование/Дешифрование TEA/XTEA/XXTEA
Семейство Tiny Encryption Algorithm - Легковесные симметричные блочные шифры
Уведомление о безопасности
TEA/XTEA/XXTEA - это легковесные шифры, используемые в основном во встроенных системах и играх. Для приложений с высокими требованиями безопасности используйте AES.
О семействе TEA
Семейство TEA (Tiny Encryption Algorithm) включает три связанных блочных шифра, разработанных Роджером Нидхэмом и Дэвидом Уилером в Кембридже. TEA был представлен в 1994 году, XTEA в 1997 для устранения слабостей TEA, и XXTEA в 1998 как блочный шифр с переменной длиной блока.
Эти алгоритмы известны своей простотой и компактным размером кода, что делает их идеальными для встроенных систем, микроконтроллеров и приложений, где размер кода критичен. Они особенно популярны в разработке игр для шифрования ресурсов и файлов сохранений.
Сравнение алгоритмов
| Алгоритм | Размер блока | Длина ключа | Раунды | Безопасность |
|---|---|---|---|---|
| TEA | 64 bits | 128 bits | 64 | Устаревший |
| XTEA | 64 bits | 128 bits | 64 | Хорошая |
| XXTEA | Переменный (≥64 бит) | 128 bits | Переменные (6+52/n) | Хорошая |
Основные характеристики
- Чрезвычайно компактный - может быть реализован в нескольких строках кода
- 128-битный ключ обеспечивает достаточную безопасность для большинства приложений
- Быстрое шифрование/дешифрование на устройствах с ограниченными ресурсами
- Отсутствие ограничений интеллектуальной собственности - полностью свободное использование
Режимы шифрования (только TEA/XTEA)
- CBC: Cipher Block Chaining - Каждый блок XOR-ится с предыдущим зашифрованным блоком перед шифрованием. Требует IV.
- ECB: Electronic Codebook - Каждый блок шифруется независимо. Прост, но не рекомендуется для большинства применений.
- CFB: Cipher Feedback - Преобразует блочный шифр в поточный. Режим самосинхронизации.
- OFB: Output Feedback - Генерирует поток ключей независимо. Без распространения ошибок.
- RAW: Сырой блок - Прямое шифрование одного блока без режима сцепления. IV не требуется.
Соображения безопасности
- TEA: Имеет известную уязвимость эквивалентных ключей и атаки связанных ключей. Используйте XTEA или XXTEA вместо него.
- XTEA: Исправил слабости TEA с улучшенным расписанием ключей. Широко используется и достаточно безопасен.
- XXTEA: Работает с блоками переменной длины. Лучшая диффузия, но существуют некоторые теоретические атаки.
- Для приложений, требующих высокой безопасности, рассмотрите использование AES - современного промышленного стандарта.
Типичные случаи использования
- Шифрование игровых ресурсов (Cocos2d-x, защита ресурсов Unity)
- Шифрование связи IoT-устройств
- Встроенные системы с ограниченной памятью и вычислительной мощностью
- Совместимость с устаревшими системами и реализации протоколов
Ссылки
Связанные инструменты
AES Шифрование/Дешифрование
Безопасное шифрование и дешифрование текста с использованием алгоритма AES
Blowfish Шифрование/Дешифрование
Быстрый симметричный блочный шифр, разработанный Брюсом Шнайером, с переменной длиной ключа (32-448 бит)
DES/3DES Шифрование/Дешифрование
Шифрование и дешифрование с использованием алгоритмов DES и 3DES с несколькими режимами и опциями заполнения