MUGI | |
---|---|
Опубликован | Февраль 2002 |
Размер ключа | 128 бит |
Число раундов | 32 |
Тип | Поточный шифр |
MUGI — генератор псевдослучайных чисел, который был разработан для того, чтобы использоваться как поточный шифр. Он был рекомендован проектом CRYPTREC для использования правительством Японии[1][2].
Входными параметрами MUGI являются 128-битный секретный ключ и 128-битный вектор инициализации (initialization vector). После того, как ключ и вектор инициализации получены, MUGI генерирует 64-битные блоки основываясь на внутреннем состоянии, которое изменяется после каждого блока. Размер внутреннего состояния MUGI составляет 128 бит. Оно состоит из трёх 64-битных регистров состояния (регистры «состояния») и 16 64-битных регистров («буферные» регистры). [3] MUGI использует нелинейные S-блоки изначально возникшие в Advanced Encryption Standard (AES).
Разработчики определили семейство шифров, схожих с Panama, как Panama-like keystream generator (PKSG). Рассмотрим конечный автомат с двумя внутренними состояниями a, буфером b и их обновляющих функций и . Шифр считается принадлежащим к семейству PKSG, если:
Основное состояние работы данного псевдослучайного генератора состоит из множества где S — внутреннее состояние, F — функция его обновления и f — фильтр, изолирующий выходную последовательность от внутреннего состояния S. В сущности, набор (S, F) является конечным автоматом внутренних состояний шифра. В случае шифра Panama, внутреннее состояние разделено на две части, состояние a и буфер b. Функция обновления так же разделена на 2 части. Выходной фильтр f отбирает примерно половину битов состояния a на каждом раунде.
MUGI это ГПСЧ со 128-битным секретным ключом K (секретный параметр) и 128-битным инициализирующим вектором I (публичный параметр). Минимальный объём данных, с которым работает шифр слово — 64 бита.
В данном алгоритме функции обработки работают в конечное поле Галуа GF(2^8) над полиномом 0x11b.
Входные данные: Секретный ключ К, инициализующий вектор I, число выходных слов n (по 64 бита) Выходные данные: Последовательность случайных чисел Out[i] (0<=i<n) Инициализация Шаг 1: Поместить секретный ключ К в состояние a. Затем инициализировать буфер b через функцию Шаг 2: Добавить инициализующий вектор I к состоянию а и обновить состояние а функцией Шаг 3: Запускать обновление внутреннего состояния запуская обновляющую функцию MUGI до завершения инициализационных прогонов Генерация случайных чисел Шаг 4: Запустить N раундов обновляющей функции и выводить часть внутреннего состояния каждый раунд.
Обновляющая функция, упомянутая выше это комбинация функций и следующего вида:
Функция F это композиция сложения (из буфера), нелинейной трансформации S-box, линейной трансформаци с использованием MDS матрицы M и перемешивания байт. Преобразования S и матрица M могут быть просто реализованы поиском по таблице.
Преобразование S — битовая замена — S-box в MUGI такая же как в шифре AES. Это значит, что замена S-box это композиция инверсии x -> x^-1 в GF(2^8) и афинного преобразования.
Функция обновления :
В алгоритме MUGI используются три константы: C0 для инициализации, и C1, C2 в функции ρ. Они принимают следующие значения:
Это шестнадцатеричные значения √2, √3 и √5, умноженные на 264.
Шифр был разработан, чтобы быть удобным в реализации как программно, так и аппаратно. За основу разработчики взяли шифр Panama, который мог быть использован как хеш-функция и потоковый шифр.
Разработчики шифра Панама не стали использовать регистров сдвига с линейной обратной связью (LFSR). Вместо этого они применили принципы разработки потоковых шифров к разработке блочных.
Шифр MUGI был разработан для того, чтобы быть простым в реализации и программно и аппаратно. По сравнению с шифрами RC4, E0, A5 MUGI показывает лучшие результаты в аппаратной реализации на FPGA. Максимальная скорость кодирования достигает 7 Гбит/с для частоты микросхемы 110 МГц. [4]
MUGI может быть просто использован как потоковый шифр. Для этого необходимо разделить открытый текст на блоки по 64 бита. Затем провести операцию XOR каждого из этих блоков с выходными блоками шифра MUGI с использования секретного ключа и инициализующего вектора каждый раунд.
Полный перебор ключей для данного алгоритма занимает в среднем шагов.
Безопасность ГПСЧ определяется зависимостью между входными и выходными потоками бит (или зависимостью между выходными битами последовательности). Все атаки на ГПСЧ которые могут предоставлять злоумышленнику информацию менее чем за количество шагов, необходимое для полного перебора ключей или внутренних состояний генератора, используют эти зависимости. Таким образом выходная последовательность бит ГПСЧ должна быть непредсказуемой. Таким образом можно выделить 3 класса уязвимостей ГПСЧ:
Линейно обновляемый компонент (буфер) MUGI был теоретически анализирован [5] и было обнаружено, что внутренняя реакция буфера, без обратной связи на нелинейно обновлённые компоненты, состоит из двоичных линейных рекуррентных последовательностей с очень малым периодом 48, что может стать источником уязвимости. Показано, как эта слабость в принципе может быть использована для восстановления секретного ключа и нахождения линейных статистических зависимостей.
Также был проведён предварительный анализ нелинейной компоненты MUGI, [6] где были обнаружены возможные уязвимости. Хотя и не было обнаружено существенных уязвимостей в общей структуре шифра, но было обнаружено, что отдельные его части очень чувствительны к малым изменениям. В частности можно восстановить всё 1216-битное состояние шифра и 128-битный секретный ключ используя только 56 слов из канала за 214 шагов анализа этой информации. Если исключить из этого анализа линейную часть MUGI, секретное 192-битное состоянияе может быть восстановлено с использованием лишь 3 слов из канала за 232 шагов анализа.
Тем не менее, по состоянию на 2011 год, известных атак, которые быстрее атак полным перебором пространства ключей или внутренних состояний, на алгоритм MUGI в целом не было обнаружено.
{{cite conference}}
: Википедия:Обслуживание CS1 (лишняя пунктуация) (ссылка) Википедия:Обслуживание CS1 (множественные имена: authors list) (ссылка) (недоступная ссылка)