Шифр XOR: практика взлома.

04 May 2014

В книге “Головоломки для хакера” в самой первой главе есть задача в которой читателю предлагается декодировать текст зашифрованный простым xor. При этом ключ неизвестен.

В качестве текста предлагается некий манифест “The Conscience of a Hacker.txt”.

Приступим :)

Для начала нам нужно определить длину ключа.

И кстати, почему len(text)/2? Правильнее конечно проверять все смещения вплоть до len(text) - 1, но эксперименты показали, что процент совпадений для сдвига i и n-i будет одинаков на больших текстах. Да и кто будет делать ключи длиною больше половины текста?

На практике это выглядит так:

Круто. Длина ключа нам известна.

Теперь надо найти сам ключ.

Для этого поступим таким образом:

Отлично. Потому что этот алгоритм успешно нашел ключ к шифротексту из задачи. Правда автор в решениях рекомендовал поксорить текст с фразой “The Conscience of a Hacker”, а потом глазами искать что-то похожее на ключ…

Исходники на гитхабе. Вместе с исходником загадки.

Теги: шифры

Категории: Обработка текста JFF