Я не криптоаналитик, но если вы знаете что-то о характеристиках файлов, у вас может быть шанс.
Например, предположим, что вы знаете, что оба исходных текста:
- содержит простой текст на английском языке ASCII
- статьи о спорте (или что-то еще)
Учитывая эти 2 фрагмента информации, один из подходов, который вы можете использовать, - это сканирование зашифрованного текста «расшифровкой» с использованием слов, которые вы, возможно, ожидаете найти в них, таких как «футбол», «игрок», «счет» и т. Д. Выполните расшифровку, используя «футбол» в позиции 0 зашифрованного текста, затем в позиции 1, затем в 2 и т. Д.
Если результатом дешифрования последовательности байтов является слово или фрагмент слова, то у вас есть хороший шанс найти открытый текст из обоих файлов. Это может дать вам подсказку относительно некоторого окружающего открытого текста, и вы можете увидеть, приводит ли это к разумной расшифровке. И так далее.
Повторите этот процесс с другими словами / фразами / фрагментами, которые вы, вероятно, ожидаете увидеть в открытых текстах.
В ответ на правку вашего вопроса: о чем говорит Шнайер, так это о том, что если у кого-то есть 2 зашифрованных текста, которые были зашифрованы с помощью XOR с использованием того же ключа, то XOR при использовании этих зашифрованных текстов «отменит» поток ключей, поскольку:
(A ^ k) - ciphertext of A
(B ^ k) - ciphertext of B
(A ^ k) ^ (B ^ k) - the two ciphertexts XOR'ed together which simplifies to:
A ^ B ^ k ^ k - which continues to simplify to
A ^ B ^ 0
A ^ B
Так что теперь у злоумышленника есть новый зашифрованный текст, который состоит только из двух открытых текстов. Если злоумышленник знает один из открытых текстов (скажем, у злоумышленника есть законный доступ к A, но не к B), его можно использовать для восстановления другого открытого текста:
A ^ (A ^ B)
(A ^ A) ^ B
0 ^ B
B
Теперь у атакующего есть открытый текст для B.
Это на самом деле хуже, чем это - если у злоумышленника есть A и зашифрованный текст для A, то он уже может восстановить поток ключей.
Но предложенный мною подход угадывания является вариантом вышеупомянутого, когда злоумышленник использует (надеюсь, хорошие) догадки вместо известного открытого текста. Очевидно, что это не так просто, но это та же концепция, и это можно сделать, не начиная с известного открытого текста. Теперь у злоумышленника есть зашифрованный текст, который «сообщает» ему, когда он правильно угадал какой-нибудь открытый текст (потому что это приводит к другому тексту из расшифровки). Таким образом, даже если ключ, использованный в исходной операции XOR, является случайным бредом, злоумышленник может использовать файл, у которого этот случайный бред был «удален», для получения информации, когда он делает обоснованные предположения.