CoderTools

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

Австралийский блочный шифр - Кандидат AES с 128-битными блоками и переменной длиной ключа

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

LOKI97 был кандидатом AES, но не был выбран в качестве стандарта. Для новых приложений, требующих высокой безопасности, рекомендуется AES (Rijndael).

LOKI97 поддерживает ключи 128 бит (16 байт), 192 бит (24 байта) или 256 бит (32 байта).
Параметры формата

О LOKI97

LOKI97 — третье поколение австралийского семейства шифров LOKI, разработанного Лори Брауном (Австралийская военная академия) и Йозефом Пепжиком (Университет Маккуори). Семейство началось с LOKI89 (1990, 64-битные блоки), уязвимого к дифференциальному криптоанализу Бихама и Шамира; LOKI91 исправил S-блоки; LOKI97 — полный редизайн 1998 года, поданный как кандидат AES с 128-битными блоками и ключами 128, 192 или 256 бит.

Самый отличительный структурный элемент LOKI97 — его S-блоки, генерируемые вычислением неприводимых многочленов над GF(2¹³) — алгебраически более сложная конструкция, чем S-блоки DES или SubBytes AES. Расписание ключей выводит все раундовые подключи, рекурсивно применяя саму раундовую функцию LOKI97 к мастер-ключу.

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

  • 128-битный размер блока — обновление с 64-битных блоков LOKI89, устранение уязвимости дня рождения
  • Три размера ключа: 128, 192 и 256 бит — соответствует полному диапазону длин ключей AES
  • 16-раундовая сеть Фейстеля с S-блоками, сгенерированными над GF(2¹³)
  • Самореференциальное расписание ключей — раундовые подключи выводятся рекурсивным применением раундовой функции LOKI97
  • Австралийское происхождение: разработан в ADFA и Университете Маккуори, единственный кандидат AES с исключительно южнополушарной академической родословной

История семейства LOKI

  • LOKI89: Оригинальный шифр, разработанный в 1989 году с 64-битными блоками и 64-битными ключами.
  • LOKI91: Улучшенная версия, исправляющая слабости, найденные в LOKI89.
  • LOKI97: Финальная эволюция с 128-битными блоками, представленная на конкурс AES.

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

  • CBC: Сцепление шифроблоков — каждый 128-битный блок LOKI97 XOR-ируется с предыдущим шифртекстом перед 16-раундовой последовательностью Фейстеля с S-блоками GF(2¹³). Блоки 128 бит делают вероятность коллизии пренебрежимо малой до ≈ 2⁶⁴ блоков (~148 ЭБ на ключ) — атака Sweet32 практически неприменима.
  • ECB: Электронная кодовая книга — каждый 128-битный блок LOKI97 независимо обрабатывается всеми 16 раундами. Одинаковые блоки всегда дают одинаковый шифртекст. Приемлемо только для одноблочного токена/обёртывания ключа.
  • CFB: Обратная связь по шифртексту — 128-битная блочная функция LOKI97 шифрует предыдущий шифроблок, и верхние n бит XOR-ируются с n битами открытого текста. Диффузия Фейстеля обеспечивает стойкость к известным атакам.
  • OFB: Обратная связь по выходу — блочная функция LOKI97 генерирует детерминированный ключевой поток, итеративно перешифровывая состояние независимо от открытого текста. 128-битное внутреннее состояние гарантирует цикл ключевого потока ≥ 2⁶⁴.
  • RAW: Сырой блок - Прямое шифрование одного блока без режима сцепления. IV не требуется. Только для 128-битных блоков.

Структура алгоритма

LOKI97 использует 16-раундовую структуру сети Фейстеля. Каждый раунд обрабатывает 128-битный блок, разделенный на две 64-битные половины (L и R).

Расписание ключей

256-битный мастер-ключ расширяется в 48 подключей (SK[0] до SK[47]) с использованием функции f и константы DELTA (производной от золотого сечения). Для 128-битных или 192-битных ключей ключевой материал реплицируется для заполнения 256-битного регистра ключа перед расширением.

Раундовая функция

Каждый раунд применяет: L' = R + SK[3i], R' = L XOR f(R + SK[3i], SK[3i+1], SK[3i+2]). Сложение по модулю 2^64.

Функция f

Основная функция f f(A, B) состоит из четырех слоев:

  • KP (Перестановка, управляемая ключом): Выбирает биты из A на основе управляющих битов в B
  • Sa (Слой S-блоков a): Восемь параллельных поисков S-блоков двух типов (S1: 13→8 бит, S2: 11→8 бит)
  • P (Перестановка): 64-битная перестановка с использованием шаблона чередования битов 8×8
  • Sb (Слой S-блоков b): Второй раунд восьми поисков S-блоков с дополнительным ключевым материалом из B

S-блоки

S1 имеет 8192 записи (13-битный вход → 8-битный выход), S2 имеет 2048 записей (11-битный вход → 8-битный выход). Оба вычисляются с использованием кубических операций в GF(2^13) и GF(2^11) соответственно, со специфическими порождающими полиномами для сильной нелинейности.

Дешифрование

Дешифрование использует ту же структуру, но применяет подключи в обратном порядке (от SK[47] до SK[0]) и использует вычитание вместо сложения.

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

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

Вопросы безопасности

  • Практических атак на все 16 раундов LOKI97 не известно. Конструкция S-блоков GF(2¹³) специально разработана для противодействия дифференциальному и линейному криптоанализу, выявленному в LOKI89.
  • 128-битные блоки устраняют атаку Sweet32 на 64-битные LOKI89/91. Коллизия под LOKI97 потребует ≈ 2⁶⁴ блоков (~148 ЭБ) — на практике невозможно.
  • Выбывание LOKI97 на оценке AES было суждением об эффективности, а не безопасности. Комитет AES указал на более медленную программную производительность по сравнению с Rijndael и Twofish. Криптографических слабостей выявлено не было.
  • Для всех новых систем используйте AES-128-GCM или AES-256-GCM. LOKI97 подходит для расшифровки данных из существующих архивов LOKI97 и академических исследований.

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

  • Академические криптоаналитические исследования: конструкция S-блоков GF(2¹³) и самореференциальное расписание ключей предоставляют уникальный объект изучения для алгебраического дизайна шифров
  • Совместимость с австралийскими унаследованными системами: данные, зашифрованные LOKI97 в правительственных или оборонных системах Австралии конца 1990-х
  • Сравнительное изучение кандидатов AES: наряду с Serpent, Twofish, RC6 и MARS для полного понимания компромиссов дизайна, оценивавшихся NIST
  • Соответствие требованиям без AES: организации, требующие исключительно не-AES шифрования с задокументированным криптоанализом

Ссылки

Быстрое меню

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