Message Authentication Code
Message Authentication Code
Einweg-Hash-Funktion
Message Authentication Code (MAC)
- Dienen bei Datenbank-Anwendungen der einfachen Indizierung von Informationen.
- Dabei werden beispielsweise Kundendaten durch Bildung einer Quersumme zu einem Wert zusammengefasst, denn man Hash-Wert nennt
- Ebenfalls einsetzbar als Authentifizierung und Signatur
- Es darf nicht möglich sein
- die original Information zu rekonstruieren
- durch eine ähnliche Information den selbern Hash-Wert zu bekommen
- Es werden keine Schlüssel benutzt, da sie für jeden berechenbar sein sollen
Hash-Funktion
Message Authentication Code (MAC)
- Ableitung von „to hash up“
- zerhacken, zerkleinern, durcheinander bringen
- generiert aus einer beliebig langen Zeichenkette eine zweite Zeichenfolge fixer länge.
- Anforderungen
- muss eindeutig sein
- muss einfach zu brechnen sein
- inverse Funktion muss schwierig zu berechne sein
- muss kollisionsresistent sein
- Hashes lassen sich nicht zur Kryptografie einsetzen
- sie sind nicht reversibel
Hash-Algorithmus
- Prüfsumme
- Über einen Hash-Algorithmus lässt sich aus einem beliebig langen Datensatz eine Prüfsumme fester Länge berechnen
- Kollisionsfreiheit
- Dieser Hashwert soll möglichst einmalig sein
- Damit ist sichergestellt, dass der Datensatz nicht so manipuliert werden kann, dass der Hashwert trotzdem noch derselbe ist
- SHA-1 und MD5
- Üblicherweise kommen SHA-1 (Secure Hash Algorithm) mit 160 Bit
- MD5 (Message Digest Algorithm) mit 128 Bit zum Einsatz
- ESP mit 96 Bit
- Bei ESP wird der Hashwert von 128, respektive 160 Bit auf 96 Bit abgeschnitten
- (Keyed-)Hash Message Authentication Codes
- Zur Authentisierung von Daten
- HMAC ist eine Sonderform des MAC, bei der zusammen mit einem geheimen Schlüssel ein Hash-Wert etwa über Datenpaket gebildet wird
- Bei VPNs benutzt man in der Regel HMAC-MD5 oder HMAC-SHA-1
MD-5
- Mit MD-2 und MD-4 einer der Hash-Funktionen, die stetig verbessert werden
- Nachrichten werden in 512 Bit Blöcken verarbeitet
- indem es 16 x 32 Bit Blöcke zusammenfasst
- Auch als MAC erhält man einen 128 Bit langen Block aus 32 Bit Blöcken
- Die Verarbeitung findet in mehreren Stufen statt
- Dabei dienen ein 512 langer Block und das MAC der vorangegangenen Stufe als Eingangsfolge
SHA-1
Schwäche von MD-5
- relativ schnelle Kollisionen der Hash-Werte
- SHA-1 generiert aus einer maximal 2^64 Bit langen Eingangsfolge eine 160 Bit lange Zeichenfolge
- Dabei arbeite es mit 512 bit Blöcken
- Der Algorithmus verwendet 5 Stufen mit jeweils 80 Schritten
- Ergebnisfolge ist wesentlich länger als bei MD-5
- wodurch Kollisionen unwahrscheinlicher sind
- Durchschnittliche Kollisionen:
- MD-5=2^60
- SHA-1=2^80
Digital Signature Algorythm (DSA)
- Chiffriert einen, durch eine Hash-Funktion generierten, MAC mittels eines privaten Schlüssels
- Vorgehen eines mit SHA-1 generierten MAC
- Auswahl einer Primzahl p zwischen 512 und 1024 Bit
- Berechnung des Primfaktors q der Zahl (p-1). q ist 160 Bit lang
- Berechnung einer Zahl g
- mit g = h^(p-1/q) mod p, wobei h < p und g > 1
- Auswahl einer weiteren Zahl x
- als Privater Schlüssel des Senders Alice (x < q)
- Zahl y = g^x mod p wird nun als öffentlicher Schlüssel verwendet