Перейти к содержанию

Mosquito

Материал из энциклопедии Руниверсалис

В криптографии, MOSQUITO — это аппартно-ориентированный самосинхронизующийся поточный шифр, разработанный в 2005 году Йоаном Дайменом и Парисом Китсосом. После взлома[ссылка 1] MOUSQUITO, была разработана вторая версия шифра, которая была представлена в проекте eSTREAM, где достигла третьего этапа отбора. В 2008 году вторая версия MOSQUITO — MOUSTIQUE, также была взломана[ссылка 2].

Обзор работы MOSQUITO

Общий смысл работы самосинхронизующегося поточного шифра MOSQUITO аналогичен работе самосинхронизующихся поточных шифров, в которых генерация потока ключей создаётся функцией от битов ключа и одного бита шифротекста, что, по сути, аналогично работе CFB с одним блоком перестановки. Особенности же шифра MOSQUITO заключаются в наличии девятистадийного конвейера, дополняющего условную зависимость регистра сдвига (Conditional Complementing Shift Registers — CCSR[примечание 1]) и функциями перехода между стадиями конвейера особого вида.

Спецификация

В шифре MOSQUITO восемь регистров различной длины, назовём регистр CCSR — [math]\displaystyle{ a^{\mathcal h 0 \mathcal i} }[/math], первый регистр — [math]\displaystyle{ a^{\mathcal h 1 \mathcal i} }[/math], второй — [math]\displaystyle{ a^{\mathcal h 2 \mathcal i} }[/math] и так далее до седьмого регистра — [math]\displaystyle{ a^{\mathcal h 7 \mathcal i} }[/math]. Будем обозначать i-ую позицию регистра j таким образом: [math]\displaystyle{ a^{\mathcal h j \mathcal i}_{i} }[/math]. Длины регистров:

CCSR — 128 бит;

[math]\displaystyle{ a^{\mathcal h 1 \mathcal i} }[/math] — [math]\displaystyle{ a^{\mathcal h 5 \mathcal i} }[/math] 53 бита;
[math]\displaystyle{ a^{\mathcal h 6 \mathcal i} }[/math] — 12 бит;
[math]\displaystyle{ a^{\mathcal h 7 \mathcal i} }[/math] — 3 бита.

Суть работы шифра заключается в вычислении, на каждый такт, битов какого-нибудь из регистров (кроме CCSR) на основе некоторой комбинации битов предыдущего регистра. Регистр CCSR работает как регистр сдвига: элементы регистра сдвигаются, а в нулевую позицию регистра CCSR записывается бит зашифрованного текста (с выхода шифра). Обозначим через [math]\displaystyle{ G^{j}_{i} }[/math] правило, по которому вычисляется бит в i-ий позиции в регистре j. Тогда:

[math]\displaystyle{ G^{1}_{4i~mod~53} = a^{\mathcal h 0 \mathcal i}_{128 - i} + a^{\mathcal h 0 \mathcal i}_{18 + i} + a^{\mathcal h 0 \mathcal i}_{113 - i}(a^{\mathcal h 0 \mathcal i}_{1 + i} + 1) + 1 }[/math], где [math]\displaystyle{ 0\leqslant i \lt 53 }[/math];
[math]\displaystyle{ G^{j}_{4i~mod~53} = a^{\mathcal h j-1 \mathcal i}_{i} + a^{\mathcal h j-1 \mathcal i}_{3 + i} + a^{\mathcal h j-1 \mathcal i}_{1 + i}(a^{\mathcal h j-1 \mathcal i}_{2 + i} + 1) + 1 }[/math], где [math]\displaystyle{ 0\leqslant i \lt 53 }[/math] и [math]\displaystyle{ 2\leqslant j \leqslant 5 }[/math], если нижний индекс какого-либо элемента из правой части равенства становится больше, чем 53, то этот элемент заменяется на 0;
[math]\displaystyle{ G^{6}_{i} = a^{\mathcal h 5 \mathcal i}_{4i} + a^{\mathcal h 5 \mathcal i}_{3 + 4i} + a^{\mathcal h 5 \mathcal i}_{1 + 4i} + a^{\mathcal h 5 \mathcal i}_{2 + 4i} }[/math], где [math]\displaystyle{ 0\leqslant i \lt 12 }[/math];
[math]\displaystyle{ G^{7}_{i} = a^{\mathcal h 6 \mathcal i}_{4i} + a^{\mathcal h 6 \mathcal i}_{3 + 4i} + a^{\mathcal h 6 \mathcal i}_{1 + 4i}(a^{\mathcal h 6 \mathcal i}_{2 + 4i} + 1) + 1 }[/math], где [math]\displaystyle{ 0\leqslant i \lt 3 }[/math];

и, наконец, бит ключевого потока [math]\displaystyle{ z = a^{\mathcal h 7 \mathcal i}_{0} + a^{\mathcal h 7 \mathcal i}_{1} + a^{\mathcal h 7 \mathcal i}_{2} }[/math].

Стоит отметить, что вычисление битов регистров выполняются с помощью комбинационной логики, а сдвиг, естественно, с помощью регистровой, а это значит, что для предотвращения неправильной работы конвейера, когда биты с регистра не успевают обработаться комбинационной логикой, надо чтобы функция [math]\displaystyle{ G^{j}_{i} }[/math], реализующая вычисления, была относительна простой.

Примечания

  1. смысл такого названия становится понятен из спецификации на шифр MOSQUITO, п 3.3, где рассматривается изменение регистра CCSR с точки зрения теории конечных автоматов, в этой же статье CCSR считается обычным 128-битовым регистром
  1. A. Joux and F. Muller, «Chosen-Ciphertext Attacks against MOSQUITO,» Архивная копия от 21 сентября 2011 на Wayback Machine Fast Software Encryption 2006, LNCS, M. Robshaw, ed., Springer-Verlag, 2006
  2. Emilia Kasper, Vincent Rijmen, Tor Bjorstad, Christian Rechberger, Matt Robshaw and Gautham Sekar «Correlated Keystreams in Moustique». Дата обращения: 16 декабря 2011. Архивировано 7 декабря 2011 года.

Ссылки