Bräuchte Hilfe bei ASCII-Aufgabe mit XOR

lisali

Erfahrenes Mitglied
Hallo,

ich bräuchte Hilfe bei der folgenden Aufgabe, da ich leider nicht darauf komme was genau gemeint ist und wie ich "zeichne":

Sie wollen einen Text aus zwei ASCII-Zeichen, z. B. „CD“,
mit einem 2-buchstabigen Passwort verschlüsseln; das Passwort
möge „YY“ heissen. Als Verschlüsselungsfunktion nehmen Sie die Exklusiv-
Oder-Funktion. Nun verschlüsseln Sie den kurzen Text mit dem Passwort, d.h. Sie
zeichnen die beiden Bitfolgen sowie das Ergebnis der Verknüpfung
auf. Erhalten Sie das alte Original? Gilt das für alle Passwörter?
(Das Exklusiv-Oder ist eine wichtige Funktion zum Verschlüsseln)

Ich bin für jede Hilfe wirklich sehr dankbar, vielen Dank!

LG,

Lisa
 
Also:

CD entspricht in ASCII 67-68, oder in Binärschreibweise 01000011-01000100.
YY entspricht in ASCII 89-89, oder in Binärschreibweise 01011001-01011001.

(Das Binärzahlensystem ist dir bekannt, oder?)

Und wenn wir jetzt die beiden mit XOR verknüpfen, erhalten wir 00011010-00011101.

Wenn wir darauf wieder YY anwenden, erhalten wir wieder das Ausgangswort CD. (Das ist immer so, denn (A XOR B) XOR B = A XOR (B XOR B) = A XOR 000…0 = A.
 
Vielen Dank für die Antwort! Ja, das Binärzahlensystem ist mir bekannt, jedoch nur die Umwandlung von binär in hexadezimal, oktal und dezimal.
Wie rechne ich denn von "CD" zum Beispiel in ASCII um auf dem Papier?

Tut mir Leid, aber ich verstehe das nicht ganz was genau du getan hast als du mit XOR verknüpft hast? Könntest du mir das bitte erklären? Wäre wirklich lieb.

Dankeschön schonmal.
 
Vielen Dank für die Antwort! Ja, das Binärzahlensystem ist mir bekannt, jedoch nur die Umwandlung von binär in hexadezimal, oktal und dezimal.
Wie rechne ich denn von "CD" zum Beispiel in ASCII um auf dem Papier?

Also erstmal belegt ein Buchstaben bei ASCII immer genau acht Bit, also ein Byte. Wenn du vom Dezimal- ins Binärsystem umrechnen musst, gehst du am besten so vor: Du schreibst dir über jede Ziffer ihren Wert. Dann gehst du von links durch – die grösse Zahl, die in deine Zahl reinpasst, setzt du auf eins und subtrahierst diesen Wert von deiner Zahl. Machen wir das mit der Zahl 67.

Die acht Ziffern haben folgende Werte: 128, 64, 32, 16, 8, 4, 2, 1. Von links her kommend ist die grösste Zahl 64, also setzen wir hier das Bit auf 1. Dann bleibt noch 3 übrig. Die nächste Zahl, die reinpasst, ist die 2, und dann auch noch die 1. Das ergibt dann im Endeffekt den Bistring 01000011.

Eine andere Methode beschreibt die Wikipedia.

Tut mir Leid, aber ich verstehe das nicht ganz was genau du getan hast als du mit XOR verknüpft hast? Könntest du mir das bitte erklären? Wäre wirklich lieb.
Du hättest dir den Link ruhig anschauen dürfen. (Und auch den hier.) Das XOR von zwei Bits ist immer genau dann 1, wenn die beiden Bits unterschiedliche Werte haben. Und Bitstrings ver-XOR-t man einfach, indem man die einzelnen Bits ver-XOR-t.
 
Tut mir Leid, hab gar nicht erkannt, dass das überhaupt Links waren und dachte es wäre einfach nur unterstrichener Text.

Was mich eben verwundert hat bei dem XOR anwenden, dass keiner der Bitfolgen zuvor vorkommen. Oder verguck ich mich da nur?

Danke dir auf jeden Fall für deine Mühe es zu erklären, das weiß ich echt zu schätzen!
 
Das XOR von zwei Bits ist immer genau dann 1, wenn die beiden Bits unterschiedliche Werte haben. Und Bitstrings ver-XOR-t man einfach, indem man die einzelnen Bits ver-XOR-t.

Man könnte es für die Verschlüsselung auch anders ausdrücken: Ein gesetztes Bit (1) im Passwort dreht das entsprechende Bit der einfach Quelle um, ungesetzte Passwort-Bits belassen das korrospondierende Bit der Quelle in ihrem Originalzustand. Daraus folgt, daß man mit selbem Passwort und Algorithus (bei der XOR-Verschlüsselung) auch wieder decodieren kann.

Was meinst Du mit: "dass keiner der Bitfolgen zuvor vorkommen"? Verstehe jetzt nicht, was Du damit ausdrücken willst.
 
Man könnte es für die Verschlüsselung auch anders ausdrücken: Ein gesetztes Bit (1) im Passwort dreht das entsprechende Bit der einfach Quelle um, ungesetzte Passwort-Bits belassen das korrospondierende Bit der Quelle in ihrem Originalzustand. Daraus folgt, daß man mit selbem Passwort und Algorithus (bei der XOR-Verschlüsselung) auch wieder decodieren kann.

Was meinst Du mit: "dass keiner der Bitfolgen zuvor vorkommen"? Verstehe jetzt nicht, was Du damit ausdrücken willst.

Könntest du bitte den oberen Absatz etwas einfacher erklären? Das wäre echt lieb.

Ich meine das hier:

CD entspricht in ASCII 67-68, oder in Binärschreibweise 01000011-01000100.
YY entspricht in ASCII 89-89, oder in Binärschreibweise 01011001-01011001.

(Das Binärzahlensystem ist dir bekannt, oder?)

Und wenn wir jetzt die beiden mit XOR verknüpfen, erhalten wir 00011010-00011101.

Das dick markierte unten... also die XOR-Verknüpfung. Von den Zahlen dort drin kommen oben in solcher Reihenfolge gar keine vor? Ich weiß nicht genau wie man "verknüpft" mit XOR!?
 
Also noch mal von vorn:

XOR-Regeln:

  • Werden zwei Bit mit gleichem Wert (also beide haben den Wert 0 oder beide haben den Wert 1) per XOR verknüpft, dann hat das Ergebnisbit den Wert 0.
  • Werden zwei Bit mit unterschiedlichem Wert (also ein Bit hat den Wert 0, das andere den Wert 1) per XOR verknüpft, dann hat das Ergebnisbit den Wert 1.
Das führt zur folgenden Wahrheitstabelle, die u.a. (auf der schon oben von SilentWarrior verlinkten) Wikipedia-Seite zu finden ist:
Code:
------+-------+--------
Bit A | Bit B | A XOR B 
------+-------+--------
 0    |  0    |    0
 0    |  1    |    1
 1    |  0    |    1
 1    |  1    |    0
------+-------+--------
Jetzt zu deiner Aufgabenstellung:

In der folgenden Tabelle schreibe ich mal den ASCII-Text "CD" und das ASCII-Passwort "YY" in eine Spalte. In der nächsten Spalte werden nun die für den ASCII-Text entsprechenden Hexadezimalwerte eingetragen. Diese Hexadezimalwerte findest du beispielsweise in der ASCII-Codetabelle auf dieser Wikipedia-Seite.
Code:
----------------------+-----------+------+--------------------
                      | ASCII     | Hex  | Binär
----------------------+-----------+------+--------------------
Text:                 | CD        | 4344 | 0100 0011 0100 0100
Passwort:             | YY        | 5959 | 0101 1001 0101 1001
----------------------+-----------+------+--------------------
In der nächsten Tabellenspalte werden diese Hexadezimalwerte als Binärwerte (hier in Tetradenform) eingetragen. Die Umrechnung kannst du entweder wieder über eine Tabelle oder einfach mit dem Windows-Taschenrechner (in der Ansicht "wissenschaftlich") durchführen.

Wenn du nun nach den o.g. XOR-Regeln die einzelnen Bits verknüpfst, dann kannst du das Ergebnis in der nächsten Tabellenzeile eintragen:
Code:
----------------------+-----------+------+--------------------
                      | ASCII     | Hex  | Binär
----------------------+-----------+------+--------------------
Text:                 | CD        | 4344 | 0100 0011 0100 0100
Passwort:             | YY        | 5959 | 0101 1001 0101 1001
----------------------+-----------+------+--------------------
XOR-Verschlüsselung:  |           |      | 0001 1010 0001 1101
==============================================================
Jetzt müsstest du zum binären XOR-Verschlüsselungsergebnis den entsprechenden Hexadezimalwert eintragen und damit kannst du dann in der ASCII-Codetabelle die zugehörigen ASCII-Werte finden, die im vorliegenden Fall Steuerzeichen sind:
Code:
----------------------+-----------+------+--------------------
                      | ASCII     | Hex  | Binär
----------------------+-----------+------+--------------------
Text:                 | CD        | 4344 | 0100 0011 0100 0100
Passwort:             | YY        | 5959 | 0101 1001 0101 1001
----------------------+-----------+------+--------------------
XOR-Verschlüsselung:  | [SUB][GS] | 1A1D | 0001 1010 0001 1101
==============================================================
Im weiteren Verlauf deiner Aufgabenstellung sollst du nun den XOR-Verschlüsselungswert mit der gleichen Prozedur nochmals mit dem Passwort verschlüsseln und herausfinden, ob du danach wieder den Originaltext "CD" erhältst. Also:
Code:
----------------------+-----------+------+--------------------
                      | ASCII     | Hex  | Binär
----------------------+-----------+------+--------------------
verschlüsselter Text: | [SUB][GS] | 1A1D | 0001 1010 0001 1101
Passwort:             | YY        | 5959 | 0101 1001 0101 1001
----------------------+-----------+------+--------------------
Das überlasse ich aber nun dir. :)
Probier das mal so.
 
Zuletzt bearbeitet:
Zurück