Интернет магазин китайских планшетных компьютеров



Компьютеры - MADRYGA - Описание алгоритма

10 июня 2011


Оглавление:
1. MADRYGA
2. Описание алгоритма
3. Криптоанализ MADRYGA



Madryga состоит из двух вложенных циклов. Внешний цикл повторяется восемь раз и содержит применение внутреннего цикла к открытому тексту. Внутренний цикл превращает открытый текст в шифротекст, повторяясь для каждого 8-битового блока открытого текста. Следовательно, весь открытый текст восемь раз последовательно обрабатывается алгоритмом. Итерация внутреннего цикла оперирует с 3-байтовым окном данных, называемым рабочим кадром. Это окно смещается на один байт за итерацию. Первые две байта рабочего кадра циклически сдвигаются на переменное число позиций, а для последнего байта выполняется XOR с некоторыми битами ключа. По мере продвижения рабочего кадра все байты последовательно «вращаются» и подвергаются операции XOR с частями ключа. Последовательные вращения перемешивают результаты предыдущих операций XOR и вращения, а результат XOR влияет на вращение. Это делает процесс обратимым. Так как каждый байт данных влияет на да байта слева от себя и на один байт справа, после восьми проходов каждый байт шифротекста зависит от 16 байтов слева и от восьми байтов справа. При шифровании каждая операция внутреннего цикла устанавливает рабочий кадр на предпоследний байт текста и циклически перемещает его к байту открытого текста, третьему слева от последнего. Сначала весь ключ подвергается операции XOR со случайной константой, а затем циклически смещается влево на 3 бита. Младшие три бита младшего байта рабочего кадра сохраняются, они определяют вращение остальных двух байтов. Затем для младшего байта рабочего кадра выполняется операция XOR с младшим байтом ключа. Далее объединение двух старших байтов циклически смещается влево на переменное число битов. Наконец рабочий кадр смещается вправо на один байт и весь процесс повторяется. Смысл случайной константы в том, чтобы превратить ключ в псевдослучайную последовательность. Длина константы должна быть равна длине ключа. При обмене данными абоненты должны пользоваться константами одинаковой длины. Для 64-битового ключа Мадрига рекомендует константу 0x0f1e2d3c4b5a6978. При дешифровании процесс инвертируется. При каждой итерации внутреннего цикла рабочий кадр устанавливается на байт, третий слева от последнего байта шифротекста, и циклически перемещается в обратном направлении до байта, который находится на два байта левее последнего байта шифротекста. И ключ и два байта шифротекста в процессе циклически смещаются направо, а XOR выполняется перед циклическими сдвигами.



Просмотров: 2639


<<< M-209
McEliece >>>