Здравствуйте, уважаемые. Читал статью EvilsInterrupt и Андрея Винокурова, более конкретного больше ничего. Собственно вопрос по циклу расшифрования. В статье Винокурова это звучит так: "Цикл расшифрования должен быть обратным циклу зашифрования" Если кто-то знает буду очень признателен за ответ. --- Обратный только лишь цикл или операции также? Например: если я делел сложение блока шифрования с ключами по mod32 должен ли я в цикле расшифрования делать вычитание? Если результат, после замен, был сдвинут в сторону старших бит, следует ли делать сдвиг в сторону младших бит в отбратном случае? Тоже с таблицей замен: Если 8 4-х битных значений были индексами для таблицы замен, в обратном случае нужно получать индекс по значению элемента? Например: Значение полученное после операций сложения с ключами (в 10-ричной системе): 12 4 0 9 5 5 7 0 Таблица замен 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ---------------------------------------------------------------- 0| 1 0 7 8 11 10 9 15 13 4 3 12 14 6 5 2 1| 8 15 12 2 6 11 14 1 10 0 5 3 4 13 7 9 2| 8 1 0 6 13 14 10 11 2 12 7 9 3 4 5 15 3| 8 2 6 12 0 11 3 15 9 4 14 1 13 10 5 7 4| 3 2 14 7 15 8 5 4 0 12 9 10 1 11 13 6 5| 6 8 12 3 14 7 11 10 0 4 9 1 15 13 5 2 6| 0 7 8 5 10 15 12 13 14 11 4 3 2 6 9 1 7| 12 3 9 2 8 7 10 13 1 0 15 6 5 11 4 14 Значение после замен: 14 6 8 4 8 7 13 12 Следует ли в обратном цикле по значению брать индекс в качестве значения?
К сожалению, все что удалось найти со статьей, скомпиленные экзешники. Если есть у кого-то исходник, желательно не на асме, это очень поможет.
И еще такой момент: В конце алгоритма зашифрования (выполняются шаги криптопреобразования для правой (младшей) части блока), зашифрованной младшей части я делаю xor со старшей, записываю не преобразованную младшую часть на место старшей а результат преобразования в младшую. Как я могу получить обратно свою старшую часть. При расшифровке у меня по сути две младшие части, одна (та которая старшая) не тронутая и та которая младшая зашифрованная.