Kryptografie/Key-Exchange
Schlüsselaustausch
- Sicherheitsrelevant für alle bisher kennen gelernten Verfahren ist der Schlüsselaustausch
- muss zuvor über einen geheimen Kanal stattfinden
- Nicht immer hat man aber die Möglichkeit sich z. B. persönlich zu treffen
- Public-Key
- Es gibt jedoch ein Möglichkeiten, auch über einen unsicheren Kanal den Schlüsselaustausch durchzuführen
- Diese Verfahren tragen den Namen „Public-Key“
- Schlüsselaustausch ist ein Problem …
- Verschiedene Schlüssel für verschiedene Kommunikationspartner notwendig
- Diffie-Hellman Schlüsselaustausch-Verfahren
- Basiert auf Schwierigkeit, den „diskreten Logarithmus“ zu berechnen
- Gegeben sein ein Primzahl-Modulus p und eine Zahl x
- 1) Alice wählt eine zufällige, geheime Zahl a und berechnet y1=x^a mod p
- 2) Bob wählt eine zufällige, geheime Zahl b und berechnet y2=x^b mod p
- Beide senden sich ihr y1 bzw. y2 zu
- Alice berechnet s = y2^a = x^(ba) mod p
- Bob berechnet s‘ = y1^b = x^(ab) mod p = s
Diffie-Hellman-Key-Exchange
- Über das Diffie-Hellman-Key-Exchange-Verfahren (DH) lassen sich kryptographische Schlüssel sicher über unsichere Kanäle aushandeln
- Es ist selbst kein Kryptografieverfahren und tauscht auch keine Schlüssel im eigentlichen Sinne aus
- Das von Martin Hellman und Whitfield Diffie entwickelte Verfahren beruht auf den Eigenschaften diskreter Logarithmen:
- zwar ist es einfach, eine Zahl zu potenzieren
- Es ist aber nur mit sehr großem Aufwand möglich, den diskreten Logarithmus einer Zahl zu berechnen
- Bei der Aushandlung einigen sich die VPN-Peers auf eine Primzahl p und eine Primitivwurzel g mod p
- Beide Faktoren dürfen unverschlüsselt übertragen werden
- Anschließend erzeugt jede Seite eine geheime Zufallszahl a/b und berechnet daraus den Wert Za= ga mod p beziehungsweise Zb = gb mod p
- Za und Zb werden an den Partner übertragen
- Daraus kann nun jede Seite den gemeinsamen symmetrischen Schlüssel K berechnen:
- Zba mod p = Zab mod p = K
Diffie-Hellman-Key-Exchange
- Sind die eingesetzten Zahlen hinreichend groß, ist es für einen Angreifer so gut wie unmöglich, den Key zu knacken
- Große Zahlen erfordern allerdings mehr Rechenaufwand
- Die Größe der Zahlen bestimmt die gewählte DH-Gruppe
- Die kleinste DH Gruppe 1 hat 768 Bit und die größte definierte Gruppe 18 besitzt 8192 Bit
- Empfohlen wird derzeit der Gebrauch der Gruppe 5 mit 1536 Bit
Diffie-Hellman
- Vereinbarung eines gemeinsamen symmetrischen Schlüssels über einen unsicheren Kanal.
- Basiert auf 2 Schlüsseln
- Alice und Bob sind einer große Primzahl p und ein ganzahliger Wert g (Generator) frei zugänglich
- Alice generiert eine große Zufallszahl a, berechnet eine Zahl A = g^a mod p
- Bob generiert ebenfalls eine große Zufallszahl b, berechnet eine Zahl B = g^b mod p
- und sendet B an Alice
- Alice berechnet eine Zahl K[1] = B^a mod p.
- Bob berechnet eine Zahl K[2] = A^b mod p.
- K[1] und K[2] sidn gleich.
- Es gilt K = K[2] = K[2] = g^a*b mod p
- K wird als geheimer symmetrischer Schlüssel verwendet