CoderTools

Шифрование/Дешифрование TEA/XTEA/XXTEA

Семейство Tiny Encryption Algorithm - Легковесные симметричные блочные шифры

Уведомление о безопасности

TEA/XTEA/XXTEA - это легковесные шифры, используемые в основном во встроенных системах и играх. Для приложений с высокими требованиями безопасности используйте AES.

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

О семействе 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-устройств
  • Встроенные системы с ограниченной памятью и вычислительной мощностью
  • Совместимость с устаревшими системами и реализации протоколов

Ссылки