CoderTools

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

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

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

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

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

О LOKI97

LOKI97 — это симметричный блочный шифр, разработанный Lawrie Brown и Josef Pieprzyk в 1997 году. Он был представлен как кандидат на конкурс Advanced Encryption Standard (AES), представляя эволюцию более ранних шифров LOKI89 и LOKI91, разработанных в Австралии.

Шифр работает с 128-битными блоками данных и поддерживает размеры ключей 128, 192 или 256 бит. Он использует 16-раундовую структуру сети Фейстеля со сложными раундовыми функциями на основе S-боксов и перестановок, разработанных для обеспечения сильной устойчивости к дифференциальному и линейному криптоанализу.

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

  • 128-битный размер блока соответствует современным стандартам безопасности
  • Гибкие размеры ключей: 128, 192 или 256 бит
  • 16-раундовая структура Фейстеля для полного перемешивания данных
  • Разработан для сопротивления дифференциальному и линейному криптоанализу
  • Часть семейства шифров LOKI, разработанных в Австралии

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

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

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

  • CBC: Сцепление блоков - Каждый блок XOR'ится с предыдущим зашифрованным блоком перед шифрованием. Обеспечивает высокую безопасность. Требует IV.
  • ECB: Электронная кодовая книга - Каждый блок шифруется независимо. Просто, но выявляет паттерны в данных. Не рекомендуется для большинства применений.
  • CFB: Обратная связь по шифротексту - Преобразует блочный шифр в потоковый. Самосинхронизирующийся и обрабатывает частичные блоки.
  • OFB: Обратная связь по выходу - Генерирует поток ключей независимо от открытого текста. Без распространения ошибок.
  • 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 Слабая Быстрая

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

  • LOKI97 обеспечивает хорошую безопасность без обнаруженных практических атак на полный шифр
  • 128-битный размер блока соответствует современным требованиям безопасности
  • Хотя не был выбран как AES, LOKI97 остается криптографически надежным
  • Для новых приложений рекомендуется AES как международный стандарт

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

  • Совместимость с устаревшими системами и исторические исследования
  • Криптографическое образование и изучение алгоритмов
  • Сравнительный анализ с другими кандидатами AES
  • Приложения, требующие австралийскую криптографию

Ссылки