XOR-Verschluesselung

Hi,

ich soll fuer ein Praktikum ein (beliebiges) Verschluesselungsverfahren als einen Hardwarebaustein implementieren (in VHDL). Dazu habe ich einen vier(!) Bit grossen Schluessel, mit dem ich vier Bit grosse Daten verschluesseln soll. Der Baustein sollte die Zahl auch enstschluesseln koennen, wenn ich die verschluesselten Daten als Schluessel und den Schluessel als Daten durch den Baustein schicke. Da die Sicherheit (in Punkto Entschluesselung) des Verfahrens also schon prinzipiell nicht gewaehrleistet ist, habe ich mir ueberlegt, ein unsicheres Verfahren zu verwenden, ich habe da von einem XOR-Verfahren gehoert. Leider finde ich in unserer Bibliothek als Verschluesselungsverfahren nur richtige Hammer wie Puplic Key oder One-Time-Pad.

Kann mir jemand dieses Verfahren (XOR) erklaeren (Link wuerde reichen) oder mir mir ein anderes, einfaches Verfahren nennen (Link reicht auch hier)? - Wichtig ist nicht die Sicherheit (obwohl ich zumindest kurz erklaeren koennen muesste, wo die Schwachstellen des verwendeten Verfahrens liegen), sondern eine Moeglichst einfache Implementierung.

Vielen Dank,
Franz Prilmeier

bei einer xor verschluesselung nimmst du jedes bit nacheinander aus data und key und verknuepfst sie xor.

das problem ist die verschluesselung von nullbit-serien in data, weil dann der schluessel im klartext enthalten ist

Hi,

bei einer xor verschluesselung nimmst du jedes bit
nacheinander aus data und key und verknuepfst sie xor.

Wie entschlüssele ich dann das ganze mit meinem Baustein wieder?

Bsp.:
Zahl 1010, Schlüssel 1101;
Verschlüsselung: 1010 XOR 1101 = 0101
Entschlüsselung: 1101 XOR 0101 = 1000 != 1010

Habe ich da was falsch gemacht? Falls ja, ich suche ein Verfahren, das folgendes macht:
D := Daten; S := Schlüssel; % := Verschlüsselungsoperation; V := verschlüsselte Daten

D % S = V und S % V = D

Also muss das Verfahren % nicht kommutativ sein.

das problem ist die verschluesselung von nullbit-serien in
data, weil dann der schluessel im klartext enthalten ist

Ok, das könnte ich hinnehmen (habe eh nur vier Bit), zumindest hast Du mich darüber aufgeklärt

Grüsse,
Franz Prilmeier

ich glaube du hast mich missverstanden, du sollst das erste data-bit mit dem ersten key-bit verknuepfen ergebnis ist das erste crypt-bit. das wiederholst du fuer alle bits.

wenn data und key unterschiedlich lang sind ist das auch besser fuer die sicherheit…

wahrheitstabelle fuer 1bit-xor

xy|z
--+-
00|0
01|1
10|1
11|0


verschluesselung:

1010 data
1101 key
---- xor
0111 crypt

entschluesselung mit data:
0111 crypt
1010 data
---- xor
1101 =key


entschluessleung mit key:

0111 crypt
1101 key
---- xor
1010 =data

das muesste doch deinen anforderungen genuegen?
dazu brauchst du bloss eine handvoll schieberegister nen stapel und gatter.

1 „Gefällt mir“

Ok, ich habe einen Fehler gemacht (habe mich verrechnet);

Es gilt doch folgendes:

Sei x eine beliebige Bitfolge, dann gilt:
x XOR x = 0 und x XOR 0 = x

Sei d meine Datenbitfolge, s mein Schlüssel und k meine verschlüsselten Daten, dann habe ich folgende Beziehung:

d XOR s = k
k XOR s = (d XOR s) XOR s = d XOR (s XOR s) = d XOR 0 = d

Das ist genau das, was ich suche. In der Beziehung x XOR 0 = x steckt auch das drin, was Du mit der Verschlüsselung von Nullfolgen gemeint hast, nämlich dass da der Schlüssel im Klartext drinsteht.

Vielen Dank,
Franz Prilmeier