Шифрование и дешифрование LOKI97
Австралийский блочный шифр - Кандидат AES с 128-битными блоками и переменной длиной ключа
Предупреждение о безопасности
LOKI97 был кандидатом AES, но не был выбран в качестве стандарта. Для новых приложений, требующих высокой безопасности, рекомендуется AES (Rijndael).
О 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
- Приложения, требующие австралийскую криптографию
Ссылки
Связанные инструменты
AES Шифрование/Дешифрование
Безопасное шифрование и дешифрование текста с использованием алгоритма AES
Serpent Шифрование/Дешифрование
Финалист AES с ключами 128/192/256 бит, 32 раунда, обеспечивает отличный запас прочности и доказанную стойкость к криптоанализу
Twofish Шифрование/Дешифрование
Финалист AES, симметричный шифр с 128-битными блоками и ключами 128/192/256 бит, разработан Брюсом Шнайером