|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.03.2018, 20:55 | #1 |
Регистрация: 31.03.2018
Сообщений: 6
|
Не могу разобраться с xor операцией
Доброго времени суток.
Пришла мне одна задачка на мыло Есть вот такой код Код:
К тому же есть уже зашифрованное сообщение Задача - получить из шифротекста исходное сообщение. Знаю, что xor дважды расшифровывает уже заксоренное значение, НО тут это почему-то не работает Знающие люди, помогите разобраться. Спасибо |
31.03.2018, 21:16 | #2 | |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Цитата:
расшифруешь ксором текст только в том случае, если ключ будет тот-же
Нашедшего выход - затаптывают первым..
|
|
01.04.2018, 02:31 | #3 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Ну вот же, нужно обратить операцию:
Код:
Дальше средний цикл в обратном порядке разворачиваем и пробуем в качестве ключа к нему 256 вариантов последнего байта. При правильной декодировке должно выйти совпадающее s. Т.е. скажем в файле последний байт 0x24, берем перебор, например пусть настоящий последний байт 0х40, тогда S ожидаемое = 0х40 ^ 0x24, теперь берем 0х40 и гоним в обратном порядке. Считаем S для полученных данных и сравниваем с S ожидаемое = 0х40 ^ 0x24. Это позволит выбрать верный вариант из 256 при переборе всех. Последний раз редактировалось alexzk; 01.04.2018 в 02:37. |
01.04.2018, 04:58 | #4 | |
Регистрация: 31.03.2018
Сообщений: 6
|
Цитата:
Т.е. ксорим шифротекст 256 раз и где-то в одном ИЗ вариантов будет исходное ссобщение? |
|
01.04.2018, 05:12 | #5 | |
Регистрация: 31.03.2018
Сообщений: 6
|
я предполагаю, что последний символ в исходном сообщении:
} И что мне теперь с этим делать? поксорить шифротекст символом } чтоли? Не могу понять что вы имели вот здесь: Цитата:
можете кодом или как-то хоть немного нагляднее, пожалуйста?)) Последний раз редактировалось shwwartw; 01.04.2018 в 05:47. |
|
01.04.2018, 11:41 | #6 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Последний символ содержит в себе xor ВСЕГО исходного текста и самого исходного символа. Т.о. у нас есть 256 вариантов решения - полным перебором. Пробуем каждый вариант и получаем "возможный исходный символ" + проверочный xor всего возможного исходного текста, для этого возможного символа.
Дальше вам необходимо "реверсировать" цикл средний (т.е. движение от конца к началу + мат. операции менять на обратные.). В нем каждый шифрованый символ зависит от ПОСЛЕДУЮЩЕГО. А т.к. мы уже "предподложили, что знаем" последний, то можно вычислить предпоследний, на его основе пред-пред и т.д. Дальше от полного полученого сообщения считаем xor и сравниваем с "проверочный xor всего возможного исходного текста" с первого шага. По идее только 1 из 256 вариантов совпадет - вот он и будет результатом. Конкретно код сделать могу, но не буду - задача-то ваша. Думайте. Последний раз редактировалось alexzk; 01.04.2018 в 11:44. |
01.04.2018, 12:15 | #7 |
Регистрация: 31.03.2018
Сообщений: 6
|
Там еще одна поблема есть
как быть с пробельными символами т.е. у меня исходный зашифрованный текст выглядит как-то так: Код:
|
01.04.2018, 12:20 | #8 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Открывать файл на чтение в бинарном режиме и читать побайтно. В вашей программе так делается запись - бинарно/побайтно.
|
03.04.2018, 17:38 | #9 |
Регистрация: 31.03.2018
Сообщений: 6
|
Спасибо большое =) С этим разобрался,
там оказывается все просто было нулевой элемент массива в который пишется шифротекст = s и т.д. короче с этим справился, еще раз спасибо =) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос с операцией mod | qpuTuJlb | Общие вопросы Delphi | 9 | 17.07.2012 09:42 |
Какой операцией заменить AND? | BackSlash | Помощь студентам | 5 | 18.02.2011 15:53 |
не могу разобраться! | Apsalon | Microsoft Office Excel | 1 | 28.12.2010 18:54 |
Не могу разобраться | Lokin | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 22.03.2010 22:45 |
Помогите разобраться с операцией ->(стрелка) | RokDemon | Общие вопросы C/C++ | 2 | 03.05.2009 17:06 |