XOR-Entschlüsselung

Problem 59

Jedes Zeichen auf einem Computer hat einen einzigartigen Code, und der bevorzugte Standard ist ASCII (American Standard Code for Information Interchange - Amerikanischer Standard-Code für den Austausch von Informationen). Beispiel: Der Großbuchstabe A = 65, das Sternchen (*) = 42, und das kleine k = 107.

Es ist eine moderne Verschlüsselungsmethode, eine Textdatei zu nehmen, die Bytes in ASCII zu konvertieren, und dann jedes Byte mit einem gegebenen Wert, der aus einem geheimen Schlüssel stammt, XOR zu rechnen. Der Vorteil der XOR-Funktion ist, dass wenn man den selben Schlüssel auf den verschlüsselten Text anwendet, der ursprüngliche Text wiederhergestellt wird; Beispiel: 65 XOR 42 = 107, und dann 107 XOR 42 = 65.

Für unknackbare Verschlüsselung muss der Schlüssel die selbe Länge wie der Originaltext haben, und der Schlüssel muss aus zufälligen Bytes bestehen. Der Benutzer würde den verschlüsselten Text und den Schlüssel an verschiedenen Orten aufbewahren, und ohne beide "Hälften" ist es unmöglich, die Nachricht zu entschlüsseln.

Unglücklicherweise ist diese Technik für die meisten Benutzer unpraktisch, also gibt es die abgewandelte Methode, ein Passwort als Schlüsssel zu verwenden. Wenn das Passwort kürzer als die Nachricht ist, was oft der Fall ist, wird der Schlüssel innerhalb der Nachricht zyklisch wiederholt. Das Gleichgewicht der Methode ist es, einen ausreichend langen Passwort-Schlüssel zur Sicherheit zu verwenden, der aber kurz genug ist, um sich merken zu lassen.

Ihnen wurde Ihre Aufgabe einfach gemacht, denn der Schlüssel besteht aus drei Kleinbuchstaben. Benutzen Sie p059_cipher.txt (Rechtsklick und 'Link/Ziel speichern unter...'), eine Datei, die die verschlüsselten ASCII-Codes enthält, und das Wissen, dass der Originaltext allgemein verbreitete englische Wörter enthalten muss; entschlüsseln Sie die Nachricht und finden Sie die Summe aller ASCII-Werte im Original-Text.