meta data for this page
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
bitweise_operatoren [2022/09/27 22:00] – angelegt juergenhaas | bitweise_operatoren [2022/09/27 22:21] (aktuell) – juergenhaas | ||
---|---|---|---|
Zeile 37: | Zeile 37: | ||
+ | ==== Bitweise OR-Verknüpfung ==== | ||
+ | |||
+ | Auch beim bitweisen '' | ||
+ | |||
+ | Als Beispiel nehmen wir die gleichen Zahlen wie vorhin, verändern aber die Operation zu '' | ||
+ | |||
+ | <code plain> | ||
+ | Wahrheitstabelle für OR | ||
+ | 1011 1100 | ||
+ | OR 1001 0110 | ||
+ | ------------- | ||
+ | 1011 1110 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Wie man sieht, steht jetzt an jeder Ergebnisstelle eine '' | ||
+ | |||
+ | |||
+ | ==== Bitweise NOT-Verknüpfung ==== | ||
+ | |||
+ | Beim bitweisen '' | ||
+ | |||
+ | <code plain> | ||
+ | Wahrheitstabelle für NOT | ||
+ | | ||
+ | | ||
+ | 0100 0011 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Bei der bitweisen '' | ||
+ | |||
+ | |||
+ | ==== Bitweise XOR-Verknüpfung ==== | ||
+ | |||
+ | Eine besondere Rolle nimmt die bitweise '' | ||
+ | |||
+ | Wiederholen wir das OR-Beispiel von oben mit XOR: | ||
+ | |||
+ | <code plain> | ||
+ | Wahrheitstabelle für XOR | ||
+ | 1011 1100 | ||
+ | OR 1001 0110 | ||
+ | ------------- | ||
+ | 0010 1010 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Wir sehen, dass im Ergebnis dort wo zwei Einsen oder 2 Nullen aufeinandertreffen eine Null steht und nur dort wo zwei unterschiedliche Ziffern zusammenkommen eine Eins herauskommt. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | === Besondere Bedeutung von XOR === | ||
+ | |||
+ | Die XOR-Verknüpfung spielt in der Verschlüsselung eine zentrale Rolle. Dies liegt an der nachfolgend demonstrierten Eigenschaft. Für das Beispiel nehmen wir die Bitfolgen | ||
+ | * A: '' | ||
+ | * B: '' | ||
+ | * C: die XOR-Verknüpfung von beiden. | ||
+ | |||
+ | <code plain> | ||
+ | |||
+ | 1011 0101 1111 0011 A | ||
+ | XOR 1010 0110 0010 1000 B | ||
+ | ------------------------ | ||
+ | 0001 0011 1101 1011 --> C | ||
+ | |||
+ | |||
+ | |||
+ | 1011 0101 1111 0011 A | ||
+ | XOR 0001 0011 1101 1011 C | ||
+ | ------------------------ | ||
+ | 1010 0110 0010 1000 --> B | ||
+ | |||
+ | |||
+ | |||
+ | 1010 0110 0010 1000 B | ||
+ | XOR 0001 0011 1101 1011 C | ||
+ | ------------------------ | ||
+ | 1011 0101 1111 0011 --> A | ||
+ | |||
+ | </ | ||
+ | |||
+ | Dieses Beispiel zeigt, dass eine bitweise XOR-Verknüpfung | ||
+ | * von A mit C wieder B ergibt und | ||
+ | * von B mit C wieder A ergibt. | ||
+ | |||
+ | Sobald also zwei dieser Zahlen bekannt sind, lässt sich die dritte daraus berechnen. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | **Exkurs zur Verschlüsselung** | ||
+ | |||
+ | Betrachtet man A als eine Nachricht, die geheim gehalten werden soll und B als den Schlüssel, mit dem sie vom Absender zu diesem Zweck verschlüsselt wird, dann ist C die verschlüsselte Nachricht, die gefahrlos verschickt werden kann. | ||
+ | |||
+ | Besitzt der Empfänger auch den Schlüssel B und erhält die verschlüsselte Nachricht C, dann kann er daraus den Klartext A berechnen. | ||