Christian Pohlmann schrieb mir zum Thema X(N)OR:

 

du schreibst auf deiner Internetpräsenz, daß XOR Verschlüsselungen erst dann
sicher sind, wenn der Schlüssel genauso lang ist, wie die zu verschlüsselnde
Nachricht. Ist das der Fall, würde es sich doch um ein One Time Pad handeln,
wofür eine XOR Verschlüsselung schon wieder zu umfangreich wäre. Dafür würde
eine simple Addition völlig ausreichen.

Das Verfahren zum Knacken einer XOR Verschlüsselten Nachricht nennt sich
Koinzidenzerfassung. Dabei kann die Schlüssellänge ermittelt werden.


zur Koinzidenzerfassung:
Die Koinzidenzerfassung setzt voraus, daß ein zufälliger Schlüssel im ASCII
Format gewählt wurde. Um also eine mit XOR - Verschlüsselung verschlüsselten
Nachricht knacken zu können, muss man den Chiffretext mit sich selbst
verknüpfen. Der Schlüssel muss dazu aber um n Bytes verschoben werden. Also
XOR verschlüsselt man den Chiffretext mit dem um n Bytes verschobenen
Chiffretext. Dann zählt man die identisch gebliebenen Bytes. Sind über 6% der
Bytes gleich geblieben, hat man ein Vielfaches der Schlüssellänge. Ansonsten
bleiben ungefähr 0,4% der Bytes gleich. Man fängt mit dem Verschieben am
besten niedrig an (bei 1 Byte z.B.) (Wird kein ASCII Zeichensatz verwendet,
erhält man andere Werte). Beim ersten Ergebnis (kleinste Verschiebung), das
auf ein Vielfaches der Schlüssellänge hindeutet (6% der Bytes nach
Verschlüsselung identisch), ist n (Verschiebung) die Schlüssellänge.
Danach wird der Chiffretext um diese Länge verschoben und wieder mit sich
selbst XOR verschlüsselt. Man erhält logischerweise den Klartext, der mit der
Schlüssellänge (n) XOR verschlüsselt wurde. Den zu dechiffrieren ist dann ja
einfach....
Leider ist die Zuordnung nicht ganz eindeutig, da die Häufigkeit von
Buchstaben von Sprache zu Sprache unterschiedlich ist.