Madryga состоит из двух вложенных циклов. Внешний цикл повторяется восемь раз (но это количество м о-жет быть увеличено для повышения) и содержит применение внутреннего цикла к открытому тексту. Внутре н-ний цикл превращает открытый текст в шифротекст, повторяясь для каждого 8-битового блока (байта) открыт о-го текста. Следовательно, весь открытый текст восемь раз последовательно обрабатывается а лгоритмом.
Итерация внутреннего цикла оперирует с 3-байтовым окном данных, называемым рабочим кадром (см. 12-й). Это окно смещается на 1 байт за итерацию. (При работе с последними 2 байтами данные считаются цикл и-чески замкнутыми.) Первые два байта рабочего кадра циклически сдвигаются на переменное число позиций, а для последнего байта выполняется XOR с некоторыми битами ключа. По мере продвижения рабочего кадра все байты последовательно "вращаются" и подвергаются операции XOR с частями ключа. Последовательные вр а-щения перемешивают результаты предыдущих операций XOR и вращения, а результат XOR влияет на вращ е-ние. Это делает весь процесс обратимым.
Текст
TL-2
TL-1
TL
Движущийся
рабочий
кадр
Циклический сдвиг
WF(1) WF(2)
8 битов 8 битов
ROT
Объект сдвига
WF(3)
8 битов
Счетчик сдвига
3бита
Преобразование
Объект преобразования
Ключ
8 битов
XOR KL
XOR
Хэш-значение ключа
KL