Hashing
Verschlüsselungsmethoden bieten keinen Integritätsschutz, sondern sollen allein die Vertraulichkeit schützen. Bei einer verschlüsselten Nachricht kann nicht nachvollzogen werden ob die Nachricht verändert wurde oder nicht. Es ist gängige Praxis immer verschiedene Schlüssel für den Integritätsschutz und Verschlüsselung zu verwenden, vorausgesetzt die Verschlüsselungsmethode besitzt keinen integrierten Integritätsschutz.
Eine Hash-Funktion ist eine Einweg-Funktion welche einen Hash-Wert aus einer beliebigen Eingabe generiert. Der Input kann nicht vom Hash rekonstruiert werden. Wenn der Inhalt/Daten sich verändert, ändert sich auch der Hash. Der Hash ist also ein digitaler Fingerabdruck, welcher eindeutig ist.
Eine Hash-Funktion sollte dabei folgende Eigenschaften besitzen:
- Preimage Resistent: Ich kann von dem gegebenen Hash Wert nicht auf den Input schließen
- Second Preimage Resistent: Es gibt keinen zweiten Input, zu gegebenen Input, welcher den gleichen Hash erzeugt.
- Kollisionsresistenz: Es wird kein gleicher Hash für zwei beliebige Inputs erstellt
Vorteile
- Hashwert ist immer gleich Groß und unabhängig der Input Größe
- Leichter/Schneller zu Transportieren durch kleinere Größe
- Nicht zurückrechenbar
- Universell einsetzbar (Signaturen, Speichern von Kennwörter, Prüfsummen, Integritätsprüfung)