|
|
 |
 |
| Please note, that the Knowledge Base isn't translated to english completely at the moment. You will still find some german texts - we are translating permanently the outstanding parts! Thank you for understanding! |
Cryptographic Hashes |
| |
|
|
|
Eine Hash-Funktion ist eine mathematische Funktion, welche die Daten auf einen kurzen Wert, den so genannten Hash-Wert abbildet. Die Länge des Hash-Wertes ist von der Länge der Daten unabhängig. In der Regel werden komprimierte Werte zwischen 128 und 256 Bit erzeugt, diese werden Message Digest (MD) oder Fingerprints genannt.
Der Sender erzeugt einen Hash-Wert der Nachricht und schickt diesen mit der Nachricht an den Empfänger. Dieser berechnet aus der Nachricht ebenfalls den Hash-Wert. Da eine veränderte Nachricht einen anderen Hash-Wert aufweist, kann der Empfänger eine Manipulation sofort erkennen. Wichtig für diese Eigenschaft ist die Kollisionsfreiheit bzw. Kollisionsresistenz der Hash-Funktion h, das heißt:
es ist praktisch unmöglich, zu einem Hash-Wert c eine Nachricht m zu finden, für die c = h(m) gilt.
es ist praktisch unmöglich, eine andere Nachricht m’ zu finden, die den gleichen Hash-Wert wie m aufweist. h(m’) = h(m)
|
 |
 |
 |
kryptographischer Hash |
|
Birthday - Paradoxon |
Die zweite Eigenschaft zur Kollisionsfreiheit von Hash-Funktionen kann noch schärfer formuliert werden, dass es unmöglich ist ein Nachrichtenpaar m1, m2 mit m1 != m2 zu finden, für das h(m1) = h(m2) gilt. Dies liegt am Geburtstagsparadoxon, das zwei bestimmte Personen am gleichen Tag Geburtstag haben ist recht unwahrscheinlich. Z.B um die Wahrscheinlichkeit, dass jemand aus einer Gästeschar am gleichen Tag wie der Gastgeber Geburtstag hat, auf über 50 % zu bringen benötigt man 253 Gäste. Damit ein beliebiges Paar aus einer Gästeschar am gleichen Geburtstag hat, benötigt man nur 23 Gäste, um die 50 % Wahrscheinlichkeit zu erreichen.
Grund: Die Anzahl möglicher Paare wächst quadratisch während die Anzahl der Übereinstimmungen mit dem Gastgeber nur linear wächst. Diese Erscheinung lässt sich auf Hash-Werte übertragen - die Anzahl der Tage entspricht der Anzahl möglicher Hash-Werte. Für 128 Bit lange Hash-Werte stellt dies bereits eine Möglichkeit dar, es wären "nur" 2 hoch 64 Berechnungen notwendig. Die Kollisionsresistenz steigt logischerweise mit der Bitanzahl des Hash-Wertes. (detailliertere Rechnung in der Cryptolounge
von Christian Thöing)
|
|
|
Hash Algorithmen |
MDx
MD2, MD4 sowie MD5 wurden von RSA Data Security, Inc. entwickelt. Vom Einsatz von MD2 (sehr langsam, kurz) und MD4 (gebrochen) wird abgeraten. MD4 ist der Vorgänger von MD5 und SHA-1. MD5 gilt ebenfalls nicht als kollisionsfrei, ist nichtsdestotrotz weit verbreitet, wenn auch meist nur aus Gründen der Rückwärtskompatibilität. MD5 sollte nicht verwendet werden, wenn man nicht einen guten Grund dafür hat.
SHA
Der SHA oder SHS (Secure Hash Standard) ist ähnlich wie MD4 und MD5. Er stammt von der NSA und ist im Rahmen des DSA (Digital Signature Standard) entwickelt worden. Er erzeugt einen Hash-Wert mit 160 Bit Länge. Heute gebräuchlich ist der SHA-1.
RIPEMD
Wurde aus den Angriffen gegen MD5 wurde RIPEMD entwickelt. RIPEMD 160 wird als langfristig sicher eingestuft
Tiger
Verfahren mit langem Hash-Wert als Ergebnis, der in einigen Protokollen ( IPSEC - IKE
) Anwendung findet.
Detailliertere Informationen zu Hash-Algorithmen finden Sie auf Cipherbox.de
|
Passwortverschlüsselungen |
Wenn Passwörter verschlüsselt gespeichert oder wenn mit Passwörtern "verschlüsselt" wird, ist zumeist ein Hash-Wert des Passwortes angelegt und dieser Wert dann als Schlüssel (und Initialisierungsvektor) verwendet.
Siehe PKCS #5
|
 |
|
MAC - Message Authentication Code |
Hash-Algorithmen finden auch Anwendung in Message Authentication Codes
.
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|