Контекст: шифровальная игра от overthewire (ссылка на нее: https://overthewire.org/wargames/krypton/krypton6.html, также полезно для получения дополнительной информации), где, имея зашифрованный текст, необходимо получить открытый текст.
На этом уровне у нас есть доступ к бинарнику, который шифрует любой файл поточным шифром, используя ключ из файла, к которому у нас нет доступа (keyfile.dat) и случайное число. У нас также есть подсказка: 8-битный LFSR.
Мой вопрос заключается в следующем. Почему я не могу вернуть открытый текст, зашифровав зашифрованный текст?
Мои два предположения для этого утверждения:
1) Мы имеем дело с потоковым шифрованием, поэтому шифрование зашифрованного текста всегда должно давать открытый текст, если ключевой поток одинаков в обоих случаях, что приводит меня ко второму пункту;
2) Я пытался зашифровать два разных файла, но с одинаковым содержимым (текстом), и зашифрованный вывод в обоих случаях был одинаковым, поэтому поток ключей должен быть одинаковым.
Я знаю, что ошибаюсь, так как шифрование зашифрованного текста дает мне не открытый текст, а скорее какой-то бессмысленный случайный еще более зашифрованный файл. Можете ли вы помочь мне понять, что не так с моими рассуждениями?
Заранее благодарю за любую помощь.