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.
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
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.
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.