Главная
Новости
Строительство
Ремонт
Дизайн и интерьер




22.06.2022


10.05.2022


18.03.2022


15.02.2022


17.01.2022





Яндекс.Метрика





Mosquito

23.06.2022

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

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

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

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

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

CCSR — 128 бит;

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

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

G 4 i   m o d   53 1 = a 128 − i h 0 i + a 18 + i h 0 i + a 113 − i h 0 i ( a 1 + i h 0 i + 1 ) + 1 {displaystyle G_{4i~mod~53}^{1}=a_{128-i}^{{mathcal {h}}0{mathcal {i}}}+a_{18+i}^{{mathcal {h}}0{mathcal {i}}}+a_{113-i}^{{mathcal {h}}0{mathcal {i}}}(a_{1+i}^{{mathcal {h}}0{mathcal {i}}}+1)+1} , где 0 ⩽ i < 53 {displaystyle 0leqslant i<53} ; G 4 i   m o d   53 j = a i h j − 1 i + a 3 + i h j − 1 i + a 1 + i h j − 1 i ( a 2 + i h j − 1 i + 1 ) + 1 {displaystyle G_{4i~mod~53}^{j}=a_{i}^{{mathcal {h}}j-1{mathcal {i}}}+a_{3+i}^{{mathcal {h}}j-1{mathcal {i}}}+a_{1+i}^{{mathcal {h}}j-1{mathcal {i}}}(a_{2+i}^{{mathcal {h}}j-1{mathcal {i}}}+1)+1} , где 0 ⩽ i < 53 {displaystyle 0leqslant i<53} и 2 ⩽ j ⩽ 5 {displaystyle 2leqslant jleqslant 5} , если нижний индекс какого-либо элемента из правой части равенства становится больше, чем 53, то этот элемент заменяется на 0; G i 6 = a 4 i h 5 i + a 3 + 4 i h 5 i + a 1 + 4 i h 5 i + a 2 + 4 i h 5 i {displaystyle G_{i}^{6}=a_{4i}^{{mathcal {h}}5{mathcal {i}}}+a_{3+4i}^{{mathcal {h}}5{mathcal {i}}}+a_{1+4i}^{{mathcal {h}}5{mathcal {i}}}+a_{2+4i}^{{mathcal {h}}5{mathcal {i}}}} , где 0 ⩽ i < 12 {displaystyle 0leqslant i<12} ; G i 7 = a 4 i h 6 i + a 3 + 4 i h 6 i + a 1 + 4 i h 6 i ( a 2 + 4 i h 6 i + 1 ) + 1 {displaystyle G_{i}^{7}=a_{4i}^{{mathcal {h}}6{mathcal {i}}}+a_{3+4i}^{{mathcal {h}}6{mathcal {i}}}+a_{1+4i}^{{mathcal {h}}6{mathcal {i}}}(a_{2+4i}^{{mathcal {h}}6{mathcal {i}}}+1)+1} , где 0 ⩽ i < 3 {displaystyle 0leqslant i<3} ;

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

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