Sommersemester 2002 Konzepte von Betriebssystem-Komponenten: Schwerpunkt Sicherheit (KVBK) Vortrag zum Thema: Symmetrische Verschlüsselung (DES, 3DES, AES) und Schlüsselaustausch (Diffie-Hellman) Referent: Florian Dachlauer Mat.Nr. 1913556
Kryptographie: Kryptoanalyse: Kryptologie: Sichern von Nachrichten durch Verschlüsselung Reproduktion von Nachrichten aus Chiffretext ohne Kenntnis des Schlüssels Oberbegriff für Kryptographie und Kryptoanalyse Schlüssel: Zeichenketten { vordefinierte Regeln } : plaintext (Klartext) % ciphertext (Chiffretext) & encryption ciphertext (Chiffretext) % plaintext (Klartext) & decryption
Nachrichten: Geheimhaltung: Integrität: Verbindlichkeit: Inhalt, Bedeutung der Nachricht bleibt Unbefugten verborgen Nachricht wird auf ihrem Weg zum Ziel nicht verändert Absender eindeutig bestimmbar
Kryptographische Algorithmen: 6Berechnungsvorschriften bzw. Verfahren zur Verschlüsselung Entschlüsselung 6Kryptographische Verfahren: symmetrisch: Ver- und Entschlüsselung mit demselben Schlüssel asymmetrisch: Verschiedene Schlüssel für Ver- und Entschlüsselung
Diskussion um Open-Source: Pro Contra Frühe und lückenlose Fehlererkennung Plagiate %finanzieller Schaden Kontrolle der Mitarbeiter Schnelle Entdeckung von Sicherheitslücken Austritt aus Projekt %Änderung des Algorithmus Disassemblierung Kontrolle/Überprüfbarkeit %Vertrauen Die meisten anerkannten Verschlüsselungsalgorithmen sind open-source!
Angriffsmöglichkeiten auf kryptographische Verfahren: Analytische Verfahren: Analyse anhand der Häufigkeit von Zeichen in Sprachen Brute-Force-Angriff: Systematisches Durchtesten aller möglichen Schlüssel %Allgemein: Ciphertext-only-Angriff: ciphertext & plaintext ohne Kenntnis des Schlüssels Known-Plaintext-Angriff: ciphertext + plaintext bekannt & Umfangreiche Erkenntnisse über Verfahren & oft gewollt! Chosen-Plaintext-Angriff: Stück plaintext ; ciphertext ; bes. Public-Key, da öffentlicher Schlüssel bekannt! Chosen-ciphertext-Angriff: Stück ciphertext & plaintext
Schlüsselraum: Schlüssel binär codiert & Größe errechnet sich durch 2 hoch <Anzahl der Bits> Beispiele: Schlüssel 4 Bit: Schlüsselraum: 16 Schlüssel 16 Bit: Schlüsselraum: 65536 & Heute meist zwischen 128 und 1024 Bit & Brute-Force-Attacken sehr aufwendig & Hochleistungsrechner, verteilte Rechnernetze Man kann Schlüssel durch Anheben der Schlüssellänge beliebig sicher machen! & Sicherheitslücke: Schlüsselaustausch!
Erinnerung: Symmetrische Verschlüsselungsverfahren benutzen denselben Schlüssel für Ver- und Entschlüsselung! ; Elementare Frage: Wie gelangt der Schlüssel zum Kommunikationspartner ohne unbefugtes Einsehen? K1 &&&&&&&&&&&&&&&&&&&&&K2 Unsicherer Kanal ; Mögliche Lösungen: % Weiteres Verschlüsseln des Schlüssels Schlüsselaustauschproblem besteht weiterhin % Schlüssel ungesichert übertragen Man-in-the-Middle-Angriff & unbefriedigende Lösungen.
% Vermittlungsstelle, zentrale Instanz, Trustcenter Alice Bob + Schlüsselaustauschproblem gelöst - Trustcenter obliegt keiner Kontrolle - Ausnutzen eine Monopolstellung %Zusammenfassende Feststellung: Verschlüsselung an sich kann beinahe beliebig sicher werden kann, die größte Sicherheitslücke stellt der Austausch des Schlüssels zwischen den Partnern dar bzw. der Besitzer des Schlüssels selbst
One Time Pad - eines der sichersten Chiffrierverfahren - Major J. Mauborgne und G. Vernam - unendlich langer Schlüssel - Zufallszahlen - Die Verschlüsselung erfolgt durch eine XOR-Verknüpfung jedes Nachrichtenbits mit dem jeweils dem Index entsprechenden Schlüsselbits
+ absolut zufällige Codierung jedes Bits & nahezu perfekte Verschlüsselung & keine statistische Auswertungsmöglichkeit & Auch Kenntnis der ciphertexte keine Angriffsmöglichkeit da jede Codierung nur in einer spezifischen Nachricht Anwendung findet - praktische Probleme: & digitale Rechner können keine echten Zufallszahlen erzeugen & thermisches Rauschen, radioaktiver Zerfall & unendlich langer Schlüssel & lange Folge von Zufallszahlen müsste auf beiden Seiten gespeichert werden & ineffizient und fehleranfällig
% Mögliche Lösung durch M.Rabin - Zentrale Instanz liefert kontinuierlich Zufallszahlen - Öffentlich zugänglicher Zufallszahlenstrom - Sehr hohe Sendefrequenz & relevante Bits schwer feststellbar & Speicherung praktisch unmöglich & Datenmengen & Schreibgeschwindigkeit nicht ausreichend Empfänger muss lediglich Zeitpunkt wissen, ab wann Schlüssel aus Strom entnommen wird. - Nachricht über Zeitpunkt & Austauschproblem noch existent - Vertrauen in zentrale Instanz
DES & Data-Encryption-Standard %Klartext { geteilt in 64-Bit-Blöcke } & Eingangspermutation & & & & & & & & Schlusspermutation { 16 Runden } - Schlusspermutation invers zu Eingangspermutation %Schlüssel S & 16 Teilschlüssel
Runde i (DES): - 64-Bit-Block in 2 Blöcke zu je 32 Bit L und R - R(i) & L(i+1) - Teilschlüssel T(i) und R(i-1) & Funktion f - Ergebnis von f XOR L(i-1) & R(i+1) Funktion f: - Expansionspermutation : 32 Bit & 48 Bit - Teilschlüssel T(i) XOR Ergebnis Expansionspermutation - S-Box-Transformation: 6-er Blöcke & S-Boxes - S-Boxes & 32 Bit-Wort & P-Box-Transformation
48 Bit V V V V V V V V S-Box S-Box S-Box S-Box S-Box S-Box S-Box S-Box V V V V V V V V 32 Bit Beispiel einer S-Box: & Genaue Bildung der Matrixelemente in Literatur beschrieben!
Teilschlüssel T(i) - Schlüsselpermutation: 64-Bit-Schlüssel & 56 Bit - Teilen der 56 Bit in 2 Hälften - Shiften (verschieben um 1 oder 2 Bit) beider Hälften abhängig von Rundenindex - Verschobene Hälften & Hälften in Runde (i+1) - Kompressionspermutation: 56 Bit & 48 Bit & Eingabe für Funktion f Schnelligkeit von DES - nur einfache logische und arithmetische Operationen & effiziente Umsetzung möglich & Softwareimplementierungen: Bis zu 1.000.000 Blöcke / sec & Hardwareimplementierungen: Bis zu 10 Gigabit / sec
Sicherheit von DES - open-source & Kerkhoffs-Prinzip erfüllt: Sicherheit eines Verfahrens hängt nur von Geheimhaltung des Schlüssels ab, nicht von Geheimhaltung des Algorithmus - Relativ großer Schlüsselraum: Brute-Force-Angriff aufwendig! - Lawineneffekt: kleine Änderung des Klartextes & große Veränderung des ciphertextes - Schwächen bei bestimmten Schlüsseln mit ausschließlich 0 oder 1 & generierte Teilschlüssel alle identisch - Distributed.net knackte 1999 mit 100.000 Rechnern und 1 Großrechner knapp 90 Byte langen ciphertext in 22 Stunden - Heutige Spezialrechner brauchen im Schnitt 5 Tage & Verbesserung des Verfahrens verlangt!
3DES & 3-maliges Durchlaufen des DES-Algorithmus mit 2 Schlüsseln: & 2DES wäre anfällig für Meet-in-the-Middle-Angriff & nur doppelter Aufwand eines Known-Plaintext-Angriff: Mit verschiedenen Schlüsselpaaren vergleichen, ob Entschlüsselung eines Chiffretextes mit zweitem Schlüssel und Verschlüsselung des Plaintextes mit erstem Schlüssel identisch sind. Schnelligkeit von 3DES - Software-Implementierungen wegen mehrfachem Durchlauf durch DES etwas langsamer - Hardwareimplementierungen: Bis zu mehreren Megabit / sec
Sicherheit von 3DES - Schlüsselraum verdoppelt - Dennoch DES-Algorithmus zugrundeliegend - Schlüsselaustausch ebenso nach wie vor existent & Nachfolgestandard verlangt!
AES - Advanced-Encryption-Standard-Algorithmus - Öffentliche Ausschreibung durch NIST & National Institute of Standards and Technology Anforderungen: Offen und lizenzfrei variable Schlüssel- und Blocklängen Sicherheit gegen Angriffe mathematisch nachprüfbar einfach gestaltet effizienter als 3DES & 15 Kandidaten & 1999 Endausscheidung: 5 Algorithmen (MARS, RC6, Rijndael, Serpent und Twofish) & Sieger: Rijndael: John Daemen Vincent Rijmen & 2001 AES wird zum federal information processing standard
Ablauf von AES - Abhängig von festgesetzter Schlüssel- und Blocklänge unterschiedlich viele Runden - Zwischenergebnisse heißen Zustände - Vor jeder Runde: Schlüssel XOR jeweiliger Zustand & Eingabe für Folgerunde - Schlüsselexpansion: & (r+1) Teilschlüssel werden gebildet & Länge des Schlüssels errechnet sich aus Teilschlüsselanzahl multipliziert mit der Blocklänge
Die Runden von AES Runde i (1 <= i < r ; r = Rundenanzahl ): % ByteSub % ShiftRow % MixColumn Runde r: % ByteSub % ShiftRow
Schnelligkeit von AES % Softwareimplementierungen: Bis zu 200Mbit / sec & leicht parallelisierbar % Hardwareimplementierungen effizient möglich & einfache logische und arithmetische Operationen (XOR, Shift) & Bis zu 1 Gigabit / sec Sicherheit von AES % resistent gegen differentielle und lineare Kryptoanalyse (theoretisch nachgewiesen) % Angriffe der Konkurrenten bislang erfolglos & Hohes Vertrauen in Rijndael % Schlüsselaustauschproblem besteht weiterhin Z
Public-Key % Lösungsansatz für Schlüsselaustauschproblem % 2 Schlüssel, 1 geheim, 1 öffentlich & Verschlüsseln mit öffentl. Schlüssel & Entschlüsseln mit geheimem Schlüssel Public Keys Alice Bob
% Whitfield Diffie und Martin Hellman % Schlüsselaustauschproblem Diffie-Hellmann - Die Kommunikationspartner K1 und K2 vereinbaren eine feste, große Primzahl n und eine Zahl z. (öffentlich bekannt) - K1 wählt geheime große Zufallszahl x X := z x modn - K2 wählt geheime große Zufallszahl y Y := z y modn - (X,g,n) und (Y,g,n) öffentliche Schlüssel von K1 und K2
- K1 errechnet den geheimen Schlüssel folgendermaßen: k := Y x modn - K2 errechnet den geheimen Schlüssel mit h := X y modn - Es gilt hierbei, dass k = h - Kenntnis von n,z,x,y nützt Angreifer wenig, da Problem des diskreten Logarithmus zu lösen ist & bei richtiger Wahl der Zahlen sehr aufwendig!