Mosquito

Материал из testwiki
Перейти к навигации Перейти к поиску

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

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

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

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

В шифре MOSQUITO восемь регистров различной длины, назовём регистр CCSR — a𝒽0𝒾, первый регистр — a𝒽1𝒾, второй — a𝒽2𝒾 и так далее до седьмого регистра — a𝒽7𝒾. Будем обозначать i-ую позицию регистра j таким образом: ai𝒽j𝒾. Длины регистров:

CCSR — 128 бит;

a𝒽1𝒾 — a𝒽5𝒾 53 бита;
a𝒽6𝒾 — 12 бит;
a𝒽7𝒾 — 3 бита.

Суть работы шифра заключается в вычислении, на каждый такт, битов какого-нибудь из регистров (кроме CCSR) на основе некоторой комбинации битов предыдущего регистра. Регистр CCSR работает как регистр сдвига: элементы регистра сдвигаются, а в нулевую позицию регистра CCSR записывается бит зашифрованного текста (с выхода шифра). Обозначим через Gij правило, по которому вычисляется бит в i-ий позиции в регистре j. Тогда:

G4imod531=a128i𝒽0𝒾+a18+i𝒽0𝒾+a113i𝒽0𝒾(a1+i𝒽0𝒾+1)+1, где 0i<53;
G4imod53j=ai𝒽j1𝒾+a3+i𝒽j1𝒾+a1+i𝒽j1𝒾(a2+i𝒽j1𝒾+1)+1, где 0i<53 и 2j5, если нижний индекс какого-либо элемента из правой части равенства становится больше, чем 53, то этот элемент заменяется на 0;
Gi6=a4i𝒽5𝒾+a3+4i𝒽5𝒾+a1+4i𝒽5𝒾+a2+4i𝒽5𝒾, где 0i<12;
Gi7=a4i𝒽6𝒾+a3+4i𝒽6𝒾+a1+4i𝒽6𝒾(a2+4i𝒽6𝒾+1)+1, где 0i<3;

и, наконец, бит ключевого потока z=a0𝒽7𝒾+a1𝒽7𝒾+a2𝒽7𝒾.

Стоит отметить, что вычисление битов регистров выполняются с помощью комбинационной логики, а сдвиг, естественно, с помощью регистровой, а это значит, что для предотвращения неправильной работы конвейера, когда биты с регистра не успевают обработаться комбинационной логикой, надо чтобы функция Gij, реализующая вычисления, была относительна простой.

Примечания

Шаблон:Примечания Шаблон:Примечания

Ссылки


Ошибка цитирования Для существующих тегов <ref> группы «ссылка» не найдено соответствующего тега <references group="ссылка"/>
Ошибка цитирования Для существующих тегов <ref> группы «примечание» не найдено соответствующего тега <references group="примечание"/>