помогите понять алгоритм

программирование алгоритмы Shark криптография

В файле описание http://www.despeus.com/Shark.pdf

"... Рассмотрим произвольный блок информации, предназначенный для зашифровывания.
Допустим, это:
0110100110101101 (0)
Разозделим весь блок на две равные части, два подблока итерации 1:
01101001 10101101 (1)
Каждую подблок разобъем на два подблока итерации 2:
0110 1001 1010 1101 (2)
И будем проделывать данную опреацию до тех пор, пока не получим подблоки размером в
два бита. В нашем случае это произойдет на третьей итерации:
01 10 10 01 10 10 11 01 (3)
Применим следующее правило преобразования для каждого подблока:
00 --> 10
01 --> 11
10 --> 01
11 --> 00
Это правило преобразования выбрано из многих возможных, т.к. обладает однозначностью и, что особенно важно, не меняет частотной вероятности появления 0 или 1. Последнее свойство мы пронаблюдам ниже.

После преобразования получим следующую цепочку бит:
11 01 01 11 01 01 00 11
Далее, применим то же самое правило, но для пар третьей итерации:
01 00 11 00 10 00 11 11
Для пар второй итеррации:
11 00 10 10 00 11 11 11
И для пар первой итерации:
01 01 11 11 00 11 00 11 (4)
Таким образом, преобразование из цепочки (0) привело к цепочке (4).
Очевидно, что обратным преобразованием мы легко можем восстановить первоначальную
цепочку (0). ..."




Как ? Каким образом это происходит? "применим то же самое правило, но для пар третьей итерации:" Где они берут эти пары? Я вижу только одну строчку(исходные данные), как их не разбивай на блоки -- всё равно будет одна и та же последовательность. Почему для пар 3-й, 2-й, 1-й итерации у них результат разный?

Примечание:
подозреваю, что здесь что-то вроде умножения матриц, но непонятно как.
Ответы:
По сути происходит просто перестановка бит между двумя группами: первый бит певой группы, первый бит второй группы, второй бит первой группы, второй бит второй группы и так далее.
0110100110101101 (преобразование) 1101011101010011
1101011101010011 (перестановка 0123456789ABCDEF -> 021346578A9BCEDF) 1011011100110101
1011011100110101 (преобразование) 0100110010001111
0100110010001111 (перестановка 0123456789ABCDEF -> 041526378C9DAEBF) 0111000011010101
0111000011010101 (преобразование) 1100101000111111
1100101000111111 (перестановка 0123456789ABCDEF -> 08192A3B4C5D6E7F) 1010010111011101
1010010111011101 (преобразование) 0101111100110011


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.