# How can I find two strings $m_1$ and $m_2$, knowing that I know $m_1 \oplus m_2$? [duplicate]

Possible Duplicate:
How does one attack a two-time pad (i.e. one time pad with key reuse)?

I recently started to follow the cryptography class of Dan Boneh on coursera.org and the first part is talking about stream ciphers.

In general, we have an encryption which works as follows:

$$c = E(k,m) = m \oplus k$$

and $$D(k,c)=c \oplus k = m \oplus k \oplus k = m \oplus 0 =m$$

Where $k$ is the key $m$ is the message and $c$ is the cypher.

For this method, the key should be used only once. Assuming the same $k$ is used twice to produce both $c_1=E(k,m_1)$ and $c_2=E(k,m_2)$, then we could do

$$c_1 \oplus c_2 = m_1 \oplus k \oplus m_2 \oplus k=m_1 \oplus \underbrace{k \oplus k}_0 \oplus m_2 = m_1 \oplus m_2$$

Now the class claims that is messages are in English and encoded ASCII, knowing $m_1 \oplus m_2$ is sufficient to get $m_1$ and $m_2$. However, I have no idea how this is possible.

Can somebody help me out our provide me with a good book/resource where I could find the method?