I am not a cryptanalyst, but if you know something about file characteristics, you may have a chance.
For example, let's say that you know that both original texts:
- contains plain ASCII text
- - articles about sports (or something else)
Given these two pieces of information, one approach you can take is to scan through the “decryption” of the ciphertext using the words you can expect in them, such as “football,” “player,” “score,” etc. d. Decrypt using “football” at position 0 of the ciphertext, then at position 1, then 2, etc.
If the result of decrypting a sequence of bytes is represented by a word or a word, you have a good chance that you found plain text from both files. This may give you a clue as to some surrounding clear text, and you can see if this will lead to a reasonable decryption. And so on.
Repeat this process with other words / phrases / snippets that can be expected in plain text.
In response to editing the question: what Schneier is talking about is that if someone has two encrypted texts that were XOR encrypted using the same key, XORing these encrypted texts will “cancel” the key stream , because the:
(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
So, now the attacker has a new ciphertext consisting of only two plaintexts. If the attacker knows one of the plaintexts (say, the attacker has legitimate access to A, but not B), which can be used to recover another plaintext:
A ^ (A ^ B) (A ^ A) ^ B 0 ^ B B
The attacker now has plaintext for B.
This is actually worse if the attacker has A and the ciphertext for A, then he can recover the key stream already.
But the guessing method that I gave above is a variant of the above with an attacker using (I hope good) guesses instead of the known plaintext. Obviously, this is not so simple, but it is one and the same concept, and this can be done without starting with the well-known clear text. Now the attacker has an encrypted text that “tells” him when he correctly guessed about some plaintext (because it leads to another plaintext from the decryption). Thus, even if the key used in the original XOR operation is a random rascal, an attacker can use a file in which this random delirium is “deleted” in order to obtain information when he makes reasonable assumptions.