Как узнать метод шифрования если есть шифрованный и расшифрованный файл?

  • Вопрос задан
  • 6648 просмотров
Пригласить эксперта
Ответы на вопрос 5
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Никак, т.к это частный случай функции шифрования.
Ответ написан
Комментировать
@d-stream
Готовые решения - не подаю, но...
Ну если файлы идентичных размеров - можно начать с xor между ними - совсем не исключено что на выходе будет какая-нибудь читаемая фраза типа "Пися камушкин - мегахакер!")
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
только нетрадиционными способами
Ответ написан
dollar
@dollar
Делай добро и бросай его в воду.
Можно было бы перебором. Так как всего известных алгоритмов шифрования в мире конечное количество, то есть приличный шанс, что использовался один из них. Конечно, он не 100%, но обычно нет смысла изобретать велосипед, который еще и хуже будет работать, так что шанс хороший.

Проблема в том, что для перебора вам нужен ещё и ключ (т.е. простым словами - пароль). Без ключа не получится проверить даже один из известных алгоритмов, ведь потребуется перебрать всевозможные ключи, а их слишком много (не для простых алгоритмов).

Это был подход "в лоб", т.е. исходя из предположения, что зашифрованный файл - это реальный шифр, то есть полная не читаемая каша. Однако есть шанс, и судя по скрину приличный, что в шифре содержатся какие-то намеки, паттерны, подсказки о том, какими свойствами обладает шифр. Можно их изучить, и отталкиваться уже от них.

Например, можно посмотреть частоту встречаемости разных символов. Еще вопрос, что считать символом в этом анализе, но обычно это 1 байт. Может оказаться, например, как это часто бывает, что нулей заметно больше. Возможно, это не до конца спрятанная информация исходного файла, или же это свойство данного конкретного алгоритма шифрования. Есть простор для догадок.

Или можно посмотреть, сгруппированы ли и как именно читаемые символы, составляют ли они слова, или похоже ли они по длине на что-то. Как это интерпретировать - уже задача для вашей фантазии. Просто если это не случайно, то это подсказка, которую можно использовать.

Ну и далее можно продолжать медитировать, думать, разглядывать, гадать, пока не случится инсайт (озарение). И серия таких вот инсайтов может привести вас к ответу, что это за алгоритм. Но гарантии нет. Все найденные закономерности могут быть недостаточными для нахождения ответа, а в худшем случае автор шифра вам просто скармливает эти закономерности, чтобы вам было, чем занять ум. Ведь автор шифра вряд ли хочет, чтобы вы так просто научились извлекать не зашифрованные данные.

В заключении замечу, что самым надежным будет проанализировать (декомпилировать) приложение, которое шифрует, если у вас есть к нему доступ. Но это уже тема за рамками вашего вопроса и данного ответа.
Ответ написан
freeExec
@freeExec
Участник OpenStreetMap
Обычно анализируют не файлы которые шифровались, а программу которая это делала. Как правильно тут заметили, в подавляющем большинстве используют уже готовые алгоритмы и их реализации. И это позволяет нам искать в программе определённые последовательности. А именно, у алгоритмов есть конкретное начальное состояние, его нужно задать в момент инициализации, а следовательно его мы можем найти в программе. Так же в целях оптимизации скорости основные блоки шифрования написаны чуть ли не на ассемблере и почти не отличаются от компилятора к компилятору, их тоже можно идентифицировать.
В тулзе PEiD был как раз такой плагин.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы