MUGI

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
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, если:

  • включает в себя преобразование SPN и использует части буфера б как параметр.
  •  — линейное преобразование и использует части а как параметр
  • f выводит часть состояния (обычно не более 1/2)

Основное состояние работы данного псевдослучайного генератора состоит из множества где 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 в функции ρ. Они принимают следующие значения:

  • C0 = 0x6A09E667F3BCC908
  • C1 = 0xBB67AE8584CAA73B
  • C2 = 0x3C6EF372FE94F82B

Это шестнадцатеричные значения √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 в целом не было обнаружено.

Ссылки[править | править код]

Примечания[править | править код]

  1. Официальный сайт CRYPTREC (англ.). Дата обращения: 10 ноября 2011. Архивировано из оригинала 3 сентября 2012 года.
  2. Dai Watanabe, Soichi Furuya, Kazuo Takaragi, Bart Preneel, (February 2002). "A New Keystream Generator MUGI" (PDF). 9th International Workshop on Fast Software Encryption (FSE 2002). Leuven: Springer-Verlag. pp. 179—194. Дата обращения: 7 августа 2007.{{cite conference}}: Википедия:Обслуживание CS1 (лишняя пунктуация) (ссылка) Википедия:Обслуживание CS1 (множественные имена: authors list) (ссылка) (недоступная ссылка)
  3. Hitachi, Ltd. MUGI Pseudorandom Number Generator Specification Ver. 1.2 (англ.) (1 декабря 2001). Дата обращения: 10 ноября 2011. Архивировано из оригинала 3 сентября 2012 года.
  4. Paris Kitsos and Athanassios N. Skodras. On the Hardware Implementation of the MUGI Pseudorandom Number Generator (англ.). Hellenic Open University (21 марта 2007). Дата обращения: 10 ноября 2011. Архивировано из оригинала 3 сентября 2012 года.
  5. Jovan Dj. Golic (February 2004). "A weakness of the Linear Part of Stream Cipher MUGI". 11th International Workshop on Fast Software Encryption (FSE 2004). Delhi: Springer-Verlag. pp. 178—192.
  6. Alex Biryukov, Adi Shamir (February 2005). "Analysis of the Non-linear Part of Mugi". 12th International Workshop on Fast Software Encryption (FSE 2005). Paris: Springer-Verlag. pp. 320—329. Архивировано из оригинала (PostScript) 15 мая 2006. Дата обращения: 7 августа 2007.