Security Overview - Universität zu Lübeck
Transcription
Security Overview - Universität zu Lübeck
Security Cryptology Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/users/pfisterer Overview • Fundamental Terms • Basics of Cryptology • Techniques – – – – – Substitution Ciphers: Caesar, Vigenère, etc. Enigma One-Time Pad DES RSA Security - 04 Cryptology #2 1 Fundamental Terms • Cryptology comprises two main areas – Cryptography: Techniques for protecting data by encryption (Verschlüsselung) – Cryptanalysis: Science of breaking cryptography ciphers w/o knowing the encryption key (Kryptanalyse) • Cryptology is often clouded in secrecy – Very old and clandestine technology – “Cryptic” and (today) based on complex algorithms – Security of algorithms hard to understand for normal people – Domain of military and intelligence services (believed that military research is/was always ahead of the public one) – Sometimes cryptology treated like a weapon Security - 04 Cryptology #3 http://www.pgpi.org/pgpi/project/scanning/ Security - 04 Cryptology #4 2 Terms Encryption (Verschlüsselung, Codierung, Chiffrierung): Transformation of plaintext to ciphertext Plaintext (Klartext): Ciphertext (Geheimtext): Result of encryption Text to encrypt Decryption (Entschlüsselung, Decodierung, Dechiffrierung): Transformation of ciphertext to plaintext Security - 04 Cryptology #5 Taxonomy of Cryptography Secret Communication Steganography (Hide data) Cryptography (Encrypt data) Substitution (Replace characters) Security - 04 Cryptology Transposition (Permute characters) #6 3 Steganography (Greek: concealed writing) • Hide information such that others can’t see it – Security through obscurity – Messages appear as something else – E.g., images, plain text • Advantage over cryptography – Messages do not attract attention by others (such as encrypted text) – Usable when cryptography is illegal Security - 04 Cryptology #7 Steganography: Example • „Liebe Kolleginnen! Wir genießen nun endlich unsere Ferien auf dieser Insel vor Spanien. Wetter gut, Unterkunft auch, ebenso das Essen. Toll! Gruß, J. D.“ • Algorithm – Count characters until the next space character – Odd binary 0, even binary 1 – Read binary numbers as 8-Bit ASCII characters • Result – – – – First 8 words: 01010011, ASCII ‘S‘ Next 8 words: 01001111, ASCII ‘O‘ Last 8 words: 01010011, ASCII ‘S‘ Hidden text: SOS Security - 04 Cryptology #8 4 Steganography: Using digital files • Modify images such that humans will not notice any difference – Conceal data in the lowest bits of noisy images, sound files, or videos • Example – Image hidden in another image – Revealed by retaining the two least significant bits of each color component (and subsequent normalization) Figure sources: http://upload.wikimedia.org/wikipedia/commons/4/4e/StenographyOriginal.png Securityand - 04http://upload.wikimedia.org/wikipedia/commons/1/1b/StenographyRecovered.png Cryptology #9 Steganography • Advantages? • Disadvantages? • Application areas? Security - 04 Cryptology #10 5 Einfache Substitution: Geheimschriften • Klassische Kryptographie – Geheimschriften: Ersetze einen Buchstaben durch ein Geheimzeichen mit Hilfe einer Tabelle – Beispiel: „Alphabetum Kaldeorum“ aus dem frühen Mittelalter Quelle: http://wikipedia.de (Heiko Hahn) Security - 04 Cryptology #11 Geheimschriften: Schwächen • Ist der Algorithmus (Tabelle) bekannt, so kann jeder die Nachricht lesen • Es lässt sich damit keine Vertraulichkeit zwischen zwei Kommunikationspartnern erreichen • Dieses Verfahren skaliert nicht und birgt zu viele Risiken ⇒ Daher: Verschlüsselung Security - 04 Cryptology #12 6 Prinzip der Verschlüsselung Schlüssel des Empfängers Schlüssel des Senders Geheimtext Algorithmus Algorithmus Klartext Klartext Security - 04 Cryptology #13 Geheime Schlüsselverfahren • Kommunikationspartner A und B – Besitzen gemeinsamen geheimen Schlüssel Kc – Kc wird für Ver- und Entschlüsselung eingesetzt • Bis Mitte der 1970er Jahre – Nur Verfahren mit geheimem Schlüssel bekannt • Im Folgenden zunächst die gängigsten Verfahren der Geschichte Security - 04 Cryptology #14 7 Caesar-Verschlüsselung • Angeblich von Julius Caesar erfunden – Eine der ältesten Verschlüsselungsmethoden • Buchstaben werden durch im Alphabet 3 Plätze weiter hinten stehenden ersetzt – – – – A B .... Z D E C • Verallgemeinerung: n Stellen statt 3 – Ergibt 25 mögliche Schlüssel. Warum nicht 26? Security - 04 Cryptology #15 Einfache Substitution • Caesar Verschlüsselung – Variante der allgemeineren Methode der einfachen Substitution • Einfache Substitution – Jeder Buchstabe des Alphabets durch beliebigen anderen ersetzt – Zwei unterschiedliche Zeichen dürfen nicht auf dasselbe Zeichen abgebildet werden • Bei beliebiger Zuordnung – Knapp 26! = 403 Quadrillionen Schlüssel Security - 04 Cryptology Plain Cipher A U B X C O D P E C ... ... Z Q #16 8 Probleme dieser Verfahren • Verfahren sind nicht sicher – Leicht durch Häufigkeitsanalyse zu knacken • Häufigkeitsanalyse – Basiert auf statistischer Buchstabenhäufigkeit in Texten – Es existieren Tabellen für viele Sprachen – Ähnliche Tabellen lassen sich für Buchstabenpaare oder für verbotene Paare aufstellen • Analyse der Häufigkeit von Chiffretextzeichen – Mit hoher Wahrscheinlichkeit lassen sich damit Klartextzeichen zuordnen Figure source: http://home.nordwest.net/hgm/krypto/intro.htm Security - 04 Cryptology #17 Homophone Substitution • Idee – Ordne einigen Klartextzeichen mehrere Geheimtextzeichen zu – Verwende auch Sonderzeichen und Ziffern • Ziel: Verwische Häufigkeitsverteilung – Durch geschickte Abbildung soll eine Gleichverteilung aller Zeichen erreicht werden – Häufigkeitsanalyse praktisch ausgeschlossen • Problem – Wenn auch nur zu einer Nachricht Geheim- und Klartext bekannt sind, lässt sich der Schlüssel leicht bestimmen – Und meist ist ein Stück Klartext bekannt (s. später) Security - 04 Cryptology Plain Cipher A U A X B O C P D C E L E M E N ... ... Z Q #18 9 Transposition • Kein Austauschen von Zeichen – Es werden nur die Positionen der Zeichen vertauscht • Einfaches Verfahren – Schreibe Text zeilenweise in Fünfergruppen auf – Lies ihn spaltenweise wieder aus VORLE SUNGS ICHER HEITI NNETZ ENXXX VSIHNEOUCENNRNHIEXLGETTXESRIZX Security - 04 Cryptology #19 Beispiel der Transposition • Skytale, entwickelt im 5. Jhdt. vor Christus in Sparta – Nachricht wird auf Lederriemen um Holzstab gewickelt – Durchmesser ist der Schlüssel – s. auch http://de.wikipedia.org/wiki/Skytale Security - 04 Cryptology #20 10 Sicherheitsprobleme Transposition • Häufigkeitsanalyse bringt hier nichts • Aber – „Padding“ der Nachricht mit der nötigen Menge von „X“ lässt Rückschlüsse auf Struktur der Transposition zu – Bei relativ kurzen Nachrichten können bestimmte Zeichen nicht enthalten sein (welche Nachricht wurde nicht gesendet?) – Statistische Analysen sind trotzdem möglich über Buchstabenpaare (Bigramme), die jetzt auseinander gerissen sind Security - 04 Cryptology #21 Bigramm-Substitution • Nicht einzelne Zeichen, sondern Zeichenpaare ersetzen – Zum ersten mal im 16. Jhdt. eingesetzt. • Ausgangslage: 25x25 = 625 Zeichenpaare – I=J, keine Leerzeichen, keine Kleinbuchstaben • Es wurden entsprechend viele Sonderzeichen verwendet – Bzw. erst einmal erfunden • Angriff mittels verfeinerter Häufigkeitsanalyse Security - 04 Cryptology #22 11 Polyalphabetische Substitution • Problem bisheriger Verfahren – Jedem Geheimtextzeichen entspricht immer dasselbe Klartextzeichen • Polyalphabetische Substitution – Mache die Substitutionsvorschrift von der Position im Text abhängig • Entschlüsselung solcher Verfahren wesentlich schwieriger – Bekanntestes Verfahren: Vigenère-Verschlüsselung Security - 04 Cryptology #23 Vigenère-Verschlüsselung • Für jeden Buchstaben wie bei Caesar – c = a + s mod 26 (s=Schlüssel) • Verschiebung s abhängig von der Position – Ergibt sich durch ein Schlüsselwort EFFENBERGEFFENBERGEFF (Schlüssel) VORLESUNGSICHERHEITIN (Klartext) ZTWPRTYEMWNHLRSLVOXNS (Chiffretext) • Ausprobieren: – http://islab.oregonstate.edu/koc/ece575/02Project/Mun+Lee/Vigenere Cipher.html Security - 04 Cryptology #24 12 Angriff auf Vigenère • Bei Kenntnis der Schlüssellänge n – Man sucht die entsprechenden n-ten Buchstaben heraus – Entstehende Menge ist Caesar-chiffriert • Beispiel: Schlüssellänge n = 4 – Nimm jeweils den 1., 5., 9., etc. Buchstaben – Analysiere die Menge mittels Häufigkeitsverteilung – Genauso beim 2., 6., 10., ... • Unbekannte Schlüssellänge – Experimentieren mit verschiedenen Längen – Mit dem Computer kein größeres Problem – Alternative: Bestimmung der „Welligkeit“ des Textes [waetjen04] Security - 04 Cryptology #25 Polyalphabetische Substitution: Die Enigma • Chiffriermaschine – Während des 2. Weltkriegs im Funkverkehr des deutschen Militärs eingesetzt – Entwickelt 1923, weiterentwickelt 1926 – Rotormaschine, funktioniert elektromechanisch • Bestandteile – Tastatur mit 26 Tasten – Lampenfeld mit 26 Lämpchen – Zerhacker, bestehen aus einem System von Rotoren (3 bzw. 4) und dem Reflektor – Verschiedene Rotoren (ca.10 Stück) – Ein Steckfeld mit 4 bis 9 Steckbrücken Bildquelle: Deutsches Museum München Security - 04 Cryptology #26 13 Ansicht der Enigma Rotorstellung bestimmt den Schlüssel Anzeige des Geheimtext Rotoren Lampenfeld Tastatur Eingabe des Klartext Steckfeld Zusätzliches Vertauschen von Buchstaben Bildquelle: Deutsches Museum München Security - 04 Cryptology #27 Rotormaschine • Bestehen aus einer Reihe von Rotoren Strom – Elektrisch isolierende Scheibe – An gegenüberliegenden Seiten je 26 Kontakte – Jeder Eingangskontakt ist auf geheime Weise mit einem Ausgangskontakt verbunden Strom • Eine Scheibe: einfache Substitution Security - 04 Cryptology #28 14 Rotormaschine • Dreht man eine Scheibe nach jedem Zeichen einen Schritt weiter – Polyalphabetische Substitution • Kombiniert man mehrere solcher Scheiben – Deutliche Verbesserung der Periode – Besonders wenn jede Scheibe nach jedem Zeichen um einen anderen Betrag weitergedreht wird Security - 04 Cryptology #29 Enigma Funktion und Simulation • http://www.matheprisma.uni-wuppertal.de/Module/Enigma/enigma-1.2.1/bin/ Quelle des linken Bildes http://www.math.miami.edu/~harald/enigma/enigma.html Security - 04 Cryptology #30 15 Eigenschaften der Enigma • Buchstaben werden nicht auf sich selbst abgebildet – Polyalphabetisch – 2•1020 verschiedene Schlüssel – Periode von 16900 – Chiffrierung und Dechiffrierung erfordern gleiche Ausgangsstellungen • Schlüssel wurden durch Codebücher weitergegeben – Pro Tag eine Grundstellung der Rotoren – Mit dieser wurde pro Nachricht ein sog. Spruch- bzw. Sitzungsschlüssel codiert (sehr gängiges Verfahren) • Enigma galt als sehr sicher – wurde aber trotzdem geknackt Security - 04 Cryptology #31 Kryptanalyse der Enigma • Im Laufe des zweiten Weltkriegs geknackt worden – Ohne dass das deutsche Oberkommando dies vermutet oder erkannt hätte – Man hielt mit Enigma verschlüsselte Nachrichten für nicht dechiffrierbar • Gründe für die Brechung der Enigma – – – – Maschine bzw. Maschinenteile fielen in Feindeshand Leichtsinnsfehler bei der Chiffrierung Eigenarten der Chiffrierung Genialität und Ausdauer der Angreifer (Bletchley Park, UK + polnische Wissenschaftler) – Unmengen von Geheimmaterial verfügbar • Betrachten wir einige Beispiele Security - 04 Cryptology #32 16 Verlust von Maschinenteilen/Codes • 1927 bekam Polen eine Enigma – Versehentlich an deutsche Firma in Polen geschickt – Auch wenn dies zivile Maschinen waren, war nun die grundlegende Funktionsweise bekannt • Briten griffen schlecht bewaffnete Wetterschiffe an – Nutzten ebenfalls die Enigma – Gelangten an Codebücher ohne dass es dem Gegner auffiel – Viele Nachrichten konnten zumindest im Nachhinein gelesen werden Security - 04 Cryptology #33 Eigenheiten der Chiffrierung • • Kein Buchstabe wird auf sich selbst • abgebildet Wenn man also wusste, dass ein bestimmter Begriff im Klartext vorkam, konnte man bereits die Stellen ausschließen, an denen diese Wort nicht vorkommen konnte (negative Mustersuche). Beispiel: GAAHADFDEGFDTGH WAHRHEIT WAHRHEIT WAHRHEIT (*) WAHRHEIT WAHRHEIT (*) WAHRHEIT WAHRHEIT (*) WAHRHEIT (*) • Bekanntes Wort: Wahrheit • (*) gibt erlaubte Kombinationen an Security - 04 Cryptology #34 17 Chiffrierfehler • Auswahl schlechter Spruchschlüssel – „aaa“, „bbb“, Stellung der Rotoren nach dem letzten Spruch • Problem des Verlusts von Nachrichten – Antwort „bitte nochmal“ lässt sich fast erraten (z.B. wenn anschließend derselbe Spruch noch einmal kommt) – Rückfragen manchmal nicht möglich wegen Funkstille die Nachricht musste lesbar sein • Folge – Spruchschlüssel wurde zweimal hintereinander am Anfang der Nachricht übertragen – Ein polnischer Wissenschaftler fand heraus, dass dies dann wohl der Schlüssel sein müsse Security - 04 Cryptology #35 Chiffrierfehler • Häufiges Senden von Nachrichten mit demselben Text bzw. mit bekannten Worten – KEINEBESONDERENVORKOMMNISSE – HEILHITLER – ANX („AN“ + Leerzeichen am Nachrichtenanfang) • Senden ein- und derselben Nachricht verschlüsselt und unverschlüsselt – Klartext und Geheimtext bekannt Security - 04 Cryptology #36 18 Unterschieben von Nachrichten • Bestimmte Nachrichten provozieren – Durch bestimmte Aktionen konnten die Engländer den Deutschen Nachrichten unterschieben – Inhalt war dann a priori bekannt: • Verminung von Häfen • Bombardierung von Leuchttonnen • So konnte man dann dieses Wort bzw. seine Kodierung wieder im Geheimtext suchen Security - 04 Cryptology #37 • Gibt es denn ein sicheres Verfahren? Security - 04 Cryptology #38 19 One-Time Pad • One-Time Pad ist die einzige sichere Verschlüsselungsmethode – Sie ist polyalphabetisch, allerdings mit unendlicher Periode des Schlüssels – Der Schlüssel wiederholt sich nicht – Wichtig: Zufällige Schlüssel, da sich sonst evtl. wieder etwas ableiten ließe • Problem – Der lange Schlüssel ist nicht praktikabel – Verschlüsseln einer kompletten Festplatte mit einem One-Time Pad • Benötigt eine zweite Platte, die man wegschließen müsste • Da könnte man gleich die Originalplatte wegschließen • Also kein praktisch einsetzbares Verfahren Security - 04 Cryptology #39 Konsequenz • Es gibt kein 100% sicheres und praktikables Verfahren – Kryptanalyse hat immer Aussicht auf Erfolg • Wir haben schon einige wichtige Vorgehensweisen bei der Kryptanalyse kennengelernt – Insbesondere bzgl. der Enigma • Wir wollen dies nun ein wenig systematisieren – Dazu zunächst die Ziele der Kryptanalyse sowie einige Grundbegriffe Security - 04 Cryptology #40 20 Ziele der Kryptanalyse • Annahme – Das Verfahren ist bekannt – Realistische Annahme in fast allen Situationen – Beispiel: Caesar, DES, AES, GSM-Verschlüsselung (?) • Ziele – Gewinne den Schlüssel (alle Nachrichten können mitgelesen werden) – Wenn nicht möglich • Ermittle wenigstens den Klartext. • Damit ist eine Nachricht dekodiert Anhaltspunkte über den Schlüssel – Wenn nicht möglich • Versuche Aussagen über den Klartext zu machen • z.B. negative Mustersuche, siehe oben Security - 04 Cryptology #41 Grundbegriffe und -methoden • Geheimtextangriff – Schlüssel bzw. Klartext werden nur mit Hilfe des Geheimtextes gewonnen – z.B. mit Brute-Force • Klartextangriff – Teil des Klartextes ist zusätzlich zum Geheimtext bekannt – Wichtigste Methode der Kryptanalyse Security - 04 Cryptology #42 21 Grundbegriffe und -methoden • Angriff mit ausgewähltem Klartext – Angreifer gibt den Klartext vor (schiebt ihn unter) • Angriff mit adaptiv ausgewähltem Klartext – Der unterzuschiebende Klartext wird entsprechend der bisherigen Ergebnisse verändert • Geheimtext-Geheimtext-Angriff – Die Nachricht wurde mit zwei verschiedenen Verfahren kodiert und zweimal versandt Security - 04 Cryptology #43 Vorgehen des Kryptanalytikers • Voraussetzung – Geheimtext empfangen – Verfahren bekannt • Erster Schritt – Sammle Informationen über den Klartext • • • • Welche Sprache? Welche Textverarbeitung? (wegen Datenrepräsentation) Komprimierte Datei? Sprach- oder Bildaufzeichnung? – Ohne diese Infos wird die Analyse wesentlich schwieriger! Security - 04 Cryptology #44 22 Vorgehen des Kryptanalytikers (II) • Zweiter Schritt – Teste zunächst einfache bekannte Verfahren (Caesar, Vigenère, ...) – Wenn keines in Frage kommt, betrachte die möglichen Schlüssel – Beispiel • Bei einem maximal 6-Zeichen-langen Passwort bleiben nur etwa 300 Mio. Möglichkeiten kein Problem für einen PC – Zum schnellen Testen des Klartexts • • • • Test auf verbotene Zeichen und Bigramme Buchstabenhäufigkeiten Wörterbuchvergleiche Persönliche Vergleiche nur bei den vielversprechendsten Kandidaten Security - 04 Cryptology #45 Vorgehen des Kryptanalytikers (III) • Oft genügt aber ein Wörterbuchangriff – Oft werden Passworte/Sitzungsschlüssel schlecht gewählt • Weitere Schritte – Versuche Klartextangriffe mit vermuteten Wörtern – Überprüfung auf schlechte Implementierung guter Algorithmen • Beispiel für Crack-Programme – UNIX crack, John the Ripper – http://www.openwall.com/john/ – ... Security - 04 Cryptology #46 23 Modernere Verschlüsselungsverfahren Security - 04 Cryptology #47 Modernere Verschlüsselungsverfahren • Erst Mitte der 1970er Jahre entwickelt – Bit- statt zeichenweiser Verschlüsselung – Nutzung von Konfusion und Diffusion – Bis heute gibt es außer Brute-Force keinen bekannten Angriff gegen diese Verfahren • Insbesondere gehen wir ein auf – – – – Data Encryption Standard (DES) Advanced Encryption Standard (AES) Diffie-Hellman RSA (Rivest, Shamir, Adleman) Security - 04 Cryptology #48 24 Bitweise Verschlüsselung • Bisherige Verfahren sind zeichenorientiert • Mit Computern: Bitweise Verschlüsselung – Häufigkeitsanalysen werden schwierig – Wie sieht die Verteilung des 3. Bits aller Bytes eines Textes aus? • Bitweise XOR-Operation – Schlüssel und Klartext verknüpfen – Einfach in Hardware implementierbar – Leicht umkehrbar (erneute Anwendung) ⊕ 0 1 0 0 1 1 1 0 Security - 04 Cryptology #49 Konfusion und Diffusion • Konfusion • – Verschleierung des Zusammenhangs zwischen Klartext und Geheimtext – Also Ersetzen eines Zeichens durch ein anderes (Substitution) Diffusion – Verteilung der im Klartext enthaltenen Information über den Geheimtext – Das Prinzip der Transposition, die Positionen der Zeichen werden vertauscht • K O N F U S I O N • D I F F U S I O N F G H T F T I K G I U O D F F N S I Security - 04 Cryptology #50 25 Verschärfung: Lawineneffekt • Lawineneffekt – Jedes Bit des Geheimtextes soll von jedem Bit des Klartextes und des Schlüssels abhängen. • Ziel – Änderung eines Schlüssel- bzw. Klartextbits führt bei jedem Geheimtextbit mit 50% Wahrscheinlichkeit zu einer Änderung • Sonst können statistische Verfahren angewandt werden Security - 04 Cryptology #51 Strom- vs. Blockchiffrierung • Stream Cipher (Stromchiffre) – Es wird eine Bitfolge erzeugt, mit der der Nachrichtenstrom verschlüsselt wird – Optimalerweise genauso lang wie der Strom • Block Cipher (Blockchiffre) – Es werden Gruppen von Bits zusammengefasst und gemeinsam verschlüsselt, oft jede Gruppe mit demselben Schlüssel – Einfaches Beispiel: einfache Substitution wie bei Caesar • Heute nutzen praktisch alle sehr guten Verfahren die Blockchiffrierung Security - 04 Cryptology #52 26 Stream Ciphers Security - 04 Cryptology #53 Stream Ciphers • Encryption – Each byte of the plaintext is XORed with a byte from a key stream • Decryption – Ciphertext is XORed with the same keystream to obtain the plaintext Key stream Plaintext Key stream ⊕ Ciphertext Security - 04 Cryptology ⊕ Plaintext #54 27 Key Stream Generator • Security Requirements – Large period – Impossible to recover key or internal state from key stream – Must appear to be random noise – Must hold for all possible keys (i.e., no weak keys) Key stream generator Key stream (infinite length) Key (bounded size) Security - 04 Cryptology #55 Properties and Examples • Simple and fast • Sender and receiver must be synchronized • Same key stream must never be used again • Well-known and widely used – RC4, used by SSL, WEP, SSH, … – A5 (v1 and v2), used by GSM – Others: FISH, Helix, Chameleon, ... Security - 04 Cryptology #56 28 Ron’s Code Number 4 (RC4) • Designed by Ronald Rivest (RSA Security Inc.) – Symmetric encryption algorithm – Developed 1987 (trade secret, publicly announced 1994) – Variable key length – Widely used (e.g., WEP, SSL/TLS* und SSH*) – 5-10 x faster than DES • Pseudo-random key stream generator – Plaintext encrypted byte-wise * optionally selectable as encryption algorithm. Security - 07b Phy Data Link #57 RC4 Key Scheduling Algorithm • Given: Key k of length l (= 8 in this example) – Generate initial array S of length 28 – Initialize an array S with values 0…255 – S is the internal status • Key k is used to permute S – This generates the initial state of S for encryption for (i = 0 to 255) S[i] = i j = 0 for (i = 0 to 255) j = (j + S[i] + k[i mod l]) (mod 256) swap (S[i], S[j]) Security - 07b Phy Data Link #58 29 RC4 Encryption i = j = 0 • During encryption, fields of S are swapped for each message byte M i = (i + 1) mod 256 j = (j + S[i]) mod 256 swap(S[i], S[j]) • Next key byte – t: Sum of swapped elements (mod 256) – S[t]: next key byte t = (S[i] + S[j]) mod 256 C = M ⊕ S[t] • Output byte – Message byte XORed with S[t] Security - 07b Phy Data Link #59 RC4 Security • RC4 is not vulnerable against well-known attacks on most stream ciphers – There are known attacks but most of them have no practical implication • RC4 is a stream cipher – Vulnerable to bit-flipping attacks • Flipped bits in ciphertext are flipped in plaintext as well – Keys must not be used again • C1 = M1 ⊕ K1 and C2 = M2 ⊕ K1 • C1 ⊕ C2 M1 ⊕ K1 ⊕ M2 ⊕ K1 M1 ⊕ M2 Security - 07b Phy Data Link #60 30 Block Ciphers Security - 04 Cryptology #61 Block Ciphers • Operates on fixed-length groups of bits – – – – These are called blocks Typical block lengths: 128, 192 or 256 Bit Plaintext split into blocks Blocks are encrypted individually using the same key (maybe requires padding) • Implementations – DES (based on Feistel networks) – AES (based on substitution-permutation network) – Others: 3DES, RC6, Blowfish, CAST, IDEA, Serpent, … Security - 04 Cryptology #62 31 Feistel-Networks Security - 04 Cryptology #63 Feistel-Networks Plaintext • Central component of some cryptographic algorithms Li • Simple design with a interesting property Ri f ⊕ Ri+1 Li+1 – Decryption is very simple – Why? Security - 04 Cryptology Round Key – Devised by Horst Feistel (IBM) beginning of the 70s – Encryption comprised of several rounds Ciphertext #64 32 Feistel-Networks Plaintext • Feistel Network Li Ri – Ri+1 = Li ⊕ f(Ri, keyi) f ⊕ • Assume that f and the key are known – f(Ri, keyi) can be calculated Li+1 Round Key – Li+1 = Ri Ri+1 Ciphertext • Rewrite Li – Li = Li ⊕ f(Ri, keyi) ⊕ f(Ri, keyi) (Reversibility of XOR) – Li = Ri+1 ⊕ f(Ri, keyi) Security - 04 Cryptology #65 Feistel-Networks Plaintext • Result: Li = Ri+1 ⊕ f(Ri, keyi) Li Ri f • Just apply f again to inverse encryption – Can be applied recursively – Until L0 and R0 are calculated ⊕ Li+1 Rundenschlüssel – Allows to calculate Li-1 from Ri Ri+1 Ciphertext • Consequence: f needn’t be invertible – Only required that f can‘t be calculated without the key – One can use arbitrarily complex functions Security - 04 Cryptology #66 33 Data Encryption Standard (DES) Security - 04 Cryptology #67 Geschichte von DES • DES: Data Encryption Standard – Ergebnis einer öffentlichen Ausschreibung des amerikanischen National Bureau of Standards (NBS) Mitte der 70er – Ziel: Entwurf eines einheitlichen, sicheren Verschlüsselungsalgorithmus • Bester Vorschlag von IBM (Feistel, Coppersmith et al.) – Modifiziert von 128 auf 56 Bit Schlüssellänge – Unter Mitarbeit der berühmten NSA (National Security Agency) – Bedenken wegen möglicher Unsicherheit, die nur die NSA kannte – Bis heute kein Angriff außer Brute-Force bekannt Security - 04 Cryptology #68 34 Der DES-Algorithmus • DES kodiert Datenblöcke – 64 Bits werden in einem Schritt verschlüsselt – Schlüssellänge ist ebenfalls 64 Bit – Jedes 8. Bit ein Kontrollbit ist 56 Bit effektive Schlüssellänge • DES führt 16 Verschlüsselungsschritte aus – Eine Runde ist ein Feistelnetzwerk bestehend aus BitPermutationen und Verteilungen Security - 04 Cryptology #69 Security - 04 Cryptology #70 DES-Algorithmus 35 DES: Ein Zyklus Ein Zyklus: Eine S-Box: Security - 04 Cryptology #71 Zum Design von DES • DES ist komplex, aber extrem hardwarefreundlich – Beschränkt sich auf einfache Bitoperationen wie Verschiebungen und XOR • Aufgabe der P-Boxen – Lawineneffekt und Ansteuerung der S-Boxen • Aufgabe der S-Boxen – Komplexität der Kodierung – Sicherheit gegen versch. Verfahren der Kryptanalyse Security - 04 Cryptology #72 36 Sicherheit von DES • DES ist wegen seiner kurzen Schlüssellänge in kurzer Zeit mittels BruteForce zu brechen – EFF baute 1998 „Deep Crack“ (250.000$) mit 1536 speziellen Krypto-Chips – Juli 1998: DES-Code in 56 Stunden geknackt • Neuere Analyseverfahren (differenzielle und lineare Analyse) werden ständig besserund stellen eine Gefährdung dar – Deswegen wird DES ersetzt durch neuere Verfahren mit längeren Schlüsseln wie z.B. Triple-DES (3DES) oder AES Security - 04 Cryptology #73 Advanced Encryption Standard (AES) Security - 04 Cryptology #74 37 Advanced Encryption Standard (AES) • Standard for encrypting electronic data – Supersedes DES – NIST standard U.S. FIPS PUB 197 (FIPS 197), May 2002 • Result of a competition – 15 competing algorithms – Winning algorithm: Rijndael – Submitted by the two Belgian cryptographers Vincent Rijmen and Joan Daemen – AES uses a restricted version of Rijndael Security - 04 Cryptology #75 AES: Properties • Properties Plaintext (16 byte) – Fixed block size of 128 bits (16 byte) – Variable key size (128, 192, or 256 bits) 1 2 3 4 1 • Operates on a 4x4 matrix called state – Initially, state contains the plaintext Security - 04 Cryptology 2 3 4 State #76 38 AES: Encryption Flow Chart • Not based on Feistel networks – Uses a substitution-permutation network instead – Encryption and decryption comprised of multiple iteratively applied sub-routines – 4 different transformations • Operates in discrete rounds – Depends on the key size – 10 rounds (128 bit), 12 (192 bit), and 14 (256 bit) Key Expansion Initial Round − Add Round Key Rounds − Substitute Bytes − Shift Rows − Mix Columns − Add Round Key Final Round − Substitute Bytes − Shift Rows − Mix Columns − Add Round Key Security - 04 Cryptology AES: Key Expansion • Generation of round key – Fixed size: 128 bit (= block size) – Generated using the so-called Rijndael key schedule #77 Key Expansion Initial Round − Add Round Key Rounds − Substitute Bytes − Shift Rows − Mix Columns − Add Round Key • Different schedules for 128, 192, and 256 bit key sizes Final Round − Substitute Bytes − Shift Rows − Mix Columns − Add Round Key Security - 04 Cryptology #78 39 AES: Initial Round Key Expansion • Only performs a single operation Initial Round − Add Round Key Rounds − Substitute Bytes • Add round key combines the current state with the current round key − Shift Rows − Mix Columns − Add Round Key Final Round − Substitute Bytes • See next slide − Shift Rows − Mix Columns − Add Round Key Security - 04 Cryptology #79 Add Round Key • Adds the current round key to state – Addition realized as XOR 1 2 3 4 1 04 E0 48 28 2 66 CB F8 06 3 81 19 D3 26 4 E5 9A 7A 4C State 1 ⊕ 2 3 1 A0 88 2 FA 3 FE 2C 39 4 17 B1 39 4 1 2 3 4 23 2A 1 A4 68 6B 02 54 A3 6C 2 9C 9F 5B 6A 76 3 7F 35 EA 50 05 4 F2 2B 43 49 Round Key Security - 04 Cryptology State’ #80 40 AES: A Single Round Key Expansion • Comprised of four subtransformations – – – – Initial Round − Add Round Key Substitute Bytes Shift Rows Mix Columns Add Round Key (already known) Rounds − Substitute Bytes − Shift Rows − Mix Columns − Add Round Key Final Round − Substitute Bytes • Described individually in the following − Shift Rows − Mix Columns − Add Round Key Security - 04 Cryptology #81 Substitute Bytes • Each byte in state is substituted by another byte • Substitution based on AES S-Box 1 Security - 04 Cryptology 3 4 19 A0 9A E9 2 3D F4 C6 F8 3 E3 E2 8D 48 4 be 2B 2A 08 1 Table image source: FIPS 197 standard 2 1 2 3 4 1 D4 E0 B8 1E 2 27 BF B4 41 3 11 98 5D 52 4 AE F1 E5 30 #82 41 Substitute Bytes: Example 19 Table image source: FIPS 197 standard D4 Security - 04 Cryptology #83 Shift Rows 1 • Rotates rows individually – – – – 1st row 0 times 2nd row 1 times 3rd row 2 times 4th row 3 times 3 4 D4 E0 B8 1E Rotate by 0 byte 2 27 BF B4 41 Rotate by1 byte 3 11 98 5D 52 Rotate by 2 byte 4 AE F1 E5 30 Rotate by 3 byte 1 • Transposition of bytes 2 1 2 3 4 1 D4 E0 B8 1E 2 BF B4 41 27 3 5D 52 11 98 4 30 AE F1 E5 Security - 04 Cryptology #84 42 Mix Columns • The four bytes of each column are combined using an invertible linear transformation – Each column is multiplied by a known matrix • Example (key size of 128 bit) 1 2 3 4 1 1 D4 E0 B8 1E D4 2 BF B4 41 27 BF 3 5D 52 11 98 5D 4 30 AE F1 E5 30 • = 2 3 1 04 E0 48 28 66 2 66 CB F8 06 81 3 81 19 D3 26 E5 4 E5 9A 7A 4C Security - 04 Cryptology AES: Final Round 4 04 #85 Key Expansion • Like a single round but w/o mix columns Initial Round − Add Round Key Rounds • Finally, state contains the cipher text − Substitute Bytes − Shift Rows − Mix Columns − Add Round Key Final Round − Substitute Bytes − Shift Rows − Add Round Key Security - 04 Cryptology #86 43 Block Ciphers: Mode of Operation Security - 04 Cryptology #87 Block Ciphers: Mode of Operation • How to encrypt plaintext longer than the block size of a cipher – Common block sizes: DES 64 Bits, AES 128 Bits • Plaintext is fragmented into multiple chunks of the block size – Cipher is applied to each chunk individually – Different modes of operation exist (standardized by NIST) • Some modes of operation – – – – – – – Electronic Codebook (ECB) Cipher Block Chaining (CBC) Propagating Cipher-Block Chaining (PCBC) Cipher feedback (CFB) Output feedback (OFB) Counter (CTR) … 44 Electronic Codebook Mode (ECB) • Each plaintext block is encrypted individually – Decryption works in the same way Plaintext Plaintext chunk #1 Key Block Cipher Ciphertext chunk #1 Plaintext chunk #2 Key Block Cipher Plaintext chunk #3 Key Ciphertext chunk #2 Block Cipher Ciphertext chunk #3 Security - 04 Cryptology #89 Electronic Codebook Mode (ECB) • Problems with ECB – Identical plaintext blocks result in identical ciphertext blocks – Doesn’t hide repeated pattern in the data • Systems using ECB are often subject to so-called replay attacks Original image ECB Mode Any other mode Image sources: Tux the Penguin, the Linux mascot. Created by Larry Ewing with The GIMP, ECBSecurity encrypted Tux: http://en.wikipedia.org/wiki/File:Tux_ecb.jpg, Secure Tux: http://en.wikipedia.org/wiki/File:Tux_secure.jpg - 04 Cryptology #90 45 Cipher Block Chaining (CBC) • Invented by IBM in 1976 • Each plaintext chunk is XORed with the previous ciphertext block before being encrypted – To make each message unique, an initialization vector is used for the first block • Result – Each ciphertext block depends on all previous plaintext blocks Security - 04 Cryptology #91 CBC: Encryption • Previous ciphertext chunk is XORed with next plaintext chunk – Ciphertext n+1 depends on ciphertext n Initialization Vector (IV) Key Plaintext chunk #1 Plaintext chunk #2 Plaintext chunk #3 ⊕ ⊕ ⊕ Block Cipher Ciphertext chunk #1 Key Block Cipher Ciphertext chunk #2 Security - 04 Cryptology Key Block Cipher Ciphertext chunk #3 #92 46 CBC: Decryption • IV must be known for decryption – I.e., it must be transferred unencrypted with the ciphertext Initialization Vector (IV) Ciphertext chunk #1 Key Block Cipher Ciphertext chunk #2 Key Block Cipher Ciphertext chunk #3 Key Block Cipher ⊕ ⊕ ⊕ Plaintext chunk #1 Plaintext chunk #2 Plaintext chunk #3 Security - 04 Cryptology #93 CBC: Properties • Encryption – Plaintext needs padding to a multiple of the block size – Not parallelizable (depends previous encryption result) • Decryption – Use of incorrect IV only affects first plaintext block – Can be parallelized (decryption of a chunk depends only on previous ciphertext chunk) Security - 04 Cryptology #94 47 Propagating Cipher-Block Chaining (PCBC) • Next ciphertext depends on previous plain- and ciphertext • Encryption: Plaintext chunk #1 Initialization Vector (IV) Key ⊕ Plaintext chunk #2 ⊕ Block Cipher ⊕ Key Ciphertext chunk #1 Plaintext chunk #3 ⊕ ⊕ Block Cipher Block Cipher Key Ciphertext chunk #2 Ciphertext chunk #3 Security - 04 Cryptology #95 PCBC: Decryption • Causes ciphertext changes to propagate indefinitely • Decryption: Initialization Vector (IV) Ciphertext chunk #1 Key Ciphertext chunk #2 Block Cipher ⊕ Plaintext chunk #1 Key ⊕ Ciphertext chunk #3 Block Cipher ⊕ Plaintext chunk #2 Key ⊕ Block Cipher ⊕ Plaintext chunk #3 #96 48 PCBC: Properties • No official standard – Used in Kerberos v4 and Nullsoft WASTE – Otherwise not very common • Issues – If two adjacent ciphertext blocks are swapped, this does not affect the decryption of subsequent blocks – No clear attack scheme known, but as a result, PCBC is not used in Kerberos v5 Security - 04 Cryptology #97 Cipher Feedback Mode (CFB) • Creates a stream cipher out of a block cipher – Block cipher is only used to create a key stream – Allows arbitrary plaintext length <= block size • Encryption Initialization Vector (IV) Block Cipher Key Plaintext chunk #1 ⊕ Ciphertext chunk #1 Key Plaintext chunk #2 Block Cipher ⊕ Ciphertext chunk #2 Security - 04 Cryptology Key Plaintext chunk #3 Block Cipher ⊕ Ciphertext chunk #3 #98 49 CFB: Decryption Initialization Vector (IV) Key Block Cipher ⊕ Key Ciphertext chunk #1 Plaintext chunk #1 Block Cipher ⊕ Key Ciphertext chunk #2 Plaintext chunk #2 Block Cipher ⊕ Ciphertext chunk #3 Plaintext chunk #3 Security - 04 Cryptology #99 CFB: Properties • Allows arbitrary plaintext length <= block size • Encryption not parallelizable, decryption is • Loss of bytes in the ciphertext only affects two adjacent block resynchronization possible – Using byte-wise encryption, only two bytes are affected Security - 04 Cryptology #100 50 Output feedback (OFB) • Feedback of block cipher output instead of ciphertext (CFB) – Avoids any error propagation • Encryption: Initialization Vector (IV) Key Plaintext chunk #1 Block Cipher Key Plaintext chunk #2 ⊕ Ciphertext chunk #1 Block Cipher ⊕ Key Plaintext chunk #3 Ciphertext chunk #2 Block Cipher ⊕ Ciphertext chunk #3 Security - 04 Cryptology #101 OFB: Decryption Initialization Vector (IV) Key Ciphertext chunk #1 Block Cipher ⊕ Plaintext chunk #1 Key Ciphertext chunk #2 Block Cipher ⊕ Plaintext chunk #2 Security - 04 Cryptology Key Ciphertext chunk #3 Block Cipher ⊕ Plaintext chunk #3 #102 51 OFB: Properties • Effectively creates a stream cipher • Flipping bits in the ciphertext produces flipped bits in the plaintext at the same location • Allows error correcting codes to function normally even when applied before encryption • Key stream independent of plaintext • Each message requires new IV • Otherwise, the same key stream will be re-used • Essentially removes the keystream – Result: keystream ⊕ plaintext1 ⊕ keystream ⊕ plaintext2 – Equals: plaintext1 ⊕ plaintext2 Security - 04 Cryptology #103 Counter Mode (CTR) • Uses a nonce and a counter – Similar properties as OFB • Nonce: Number used once – Must never be used again Nonce & Counter A Key Plaintext chunk #1 B 1 E 0 0 0 Block Cipher ⊕ Ciphertext chunk #1 Nonce & Counter 0 A Key Plaintext chunk #2 B 1 E 0 0 0 Block Cipher ⊕ Ciphertext chunk #2 Security - 04 Cryptology Nonce & Counter 1 A Key Plaintext chunk #3 B 1 E 0 0 0 2 Block Cipher ⊕ Ciphertext chunk #3 #104 52 CTR: Decryption Nonce & Counter A Key B 1 E 0 0 Nonce & Counter 0 0 Block Cipher Ciphertext chunk #1 ⊕ A Key Ciphertext chunk #2 Plaintext chunk #1 B 1 E 0 0 0 Block Cipher ⊕ Nonce & Counter 1 A Key B 1 E 0 0 2 Block Cipher Ciphertext chunk #3 Plaintext chunk #2 0 ⊕ Plaintext chunk #3 Security - 04 Cryptology #105 Padding • Many modes of operation (e.g., ECB, CBC) require that plaintext length is a multiple of the block size – If this is not the case plaintext padding • Requirements – Any arbitrary plaintext can be adapted to a multiple of the block size – Uniquely invertible – Average length expansion should be minimal Security - 04 Cryptology #106 53 Padding • Different well-known options available – Zero Padding – Bit Padding (ISO/IEC 9797-1 Padding Method 2) – Byte Padding (ANSI X.923, ISO 10126, PKCS7/RFC 5652) • Discussed in the following Security - 04 Cryptology #107 Zero Padding • Remaining bytes are filled with zero – Not necessarily invertible – If the plaintext ends with one or more zero bytes impossible to distinguish between plaintext and padding • Example for a block size of 8 Plaintext 1 2 3 4 5 1 2 3 4 5 6 7 8 9 A B Padded Plaintext (block size 8) 6 7 8 9 Security - 04 Cryptology A B 0 0 0 0 0 #108 54 Bit Padding (ISO/IEC 9797-1 Method 2) • Add a single “1”-bit to the end of the data – Then, if necessary, add “0”-bits until the padded data is a multiple of the block size • Example: 7 bit plaintext, 16 bit block size Bit Bit 1 2 3 4 5 6 7 1 0 1 1 0 1 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 Security - 04 Cryptology #109 Bit Padding (ISO/IEC 9797-1 Method 2) • First padding byte – Bits: 1000 0000 Byte: 80 • Example for AES – Fixed block size: 16 byte – Plaintext size: 7 byte Byte Byte 1 2 3 4 5 6 7 1E 2B 11 00 AF 17 9B 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1E 2B 11 00 AF 17 9B 80 00 00 00 00 00 00 00 00 Security - 04 Cryptology #110 55 Byte Padding (PKCS7, RFC 5652) • Adds a number of bytes • Given – length: length of the payload – blocksize: block size of the cipher (blocksize < 256) • Number of bytes n to append – n = blocksize - (length mod blocksize) • Value v of the bytes added equals n Security - 04 Cryptology #111 Byte Padding (PKCS7, RFC 5652) • Example for DES (blocksize = 8) • Payload: ABCDEFGH Security - 04 Cryptology #112 56 Byte Padding (PKCS7, RFC 5652) • Example for AES (blocksize = 16) • Payload: ABCDEFGHIJKLMNOP Security - 04 Cryptology #113 Asymmetrische Verfahren Security - 04 Cryptology #114 57 Asymmetrische Verfahren • Sensationelle Neuerung Mitte der siebziger Jahre – Etablierung eines geheimen Schlüssels ohne dass dieser ausgetauscht werden muss • Basiert auf zwei unterschiedlichen Schlüsseln – Diese hängenmathematisch miteinander zusammen – Deshalb asymmetrisch, alle bisherigen Verfahren waren symmetrisch – Entwickelt von Diffie und Hellman 1976 Security - 04 Cryptology #115 Die Idee von Diffie-Hellman • Jeder Partner einer ZweierKommunikationsbeziehung besitzt zwei verschiedene Schlüssel – Ein privater Schlüssel, der geheim gehalten werden muss – Ein öffentlicher Schlüssel, der jedem zur Verfügung steht • Es ist praktisch unmöglich, – den einen Schlüssel aus dem anderen abzuleiten, – obwohl die beiden voneinander abhängig sind. • Sicherheitsanforderungen – Öffentlicher Schlüssel: Authentizität und Integrität – Privater Schlüssel: Vertraulichkeit Figure source: http://en.wikipedia.org/wiki/File:Whitfield_Diffie.png and http://en.wikipedia.org/wiki/File:Martin-Hellman.jpg Security - 04 Cryptology #116 58 Anwendung asymm. Verfahren • Schlüsselaustausch für symmetrische Verfahren • Verschlüsselung und Entschlüsselung „normaler“ Nachrichten • Digitale Signaturen Signature Security - 04 Cryptology #117 Diffie-Hellman Algorithmus • Verfahren zum Generieren eines gemeinsamen geheimen Schlüssels – Erster bekannter Public-Key-Algorithmus – Nicht direkt zum Verschlüsseln von Nachrichten verwendbar • Beruht auf Schwierigkeit der Berechnung diskreter Logarithmen – Hier: keine mathematischen Hintergründe – Wir betrachten nur kurz die Ergebnisse • Diskreter Logarithmus – b = ga mod p – Exponent a heißt diskreter Logarithmus von b zur Basis g Security - 04 Cryptology #118 59 Der Diffie-Hellman-Algorithmus Gegeben: q: α: Primzahl Primitive Wurzel von q, α<q Schlüsselgenerierung bei A Schlüsselgenerierung bei B − Wähle privates XA mit XA <q − Berechne YA mit YA = αXA mod q − Sende YA an B (nicht vertraulich) − Wähle privates XB mit XB <q − Berechne öffentliches YB mit YB = α XB mod q − Sende YB an A (nicht vertraulich) Generierung des geheimen Schlüssels bei A: Generierung des geheimen Schlüssels bei B: K = (YB) XA mod q K = (YA) XB mod q Security - 04 Cryptology #119 Beispiel Gewählt wurden q = 353 und α = 3 • • • • A wählt XA = 97 A berechnet YA = 397 mod 353 = 40 Austausch der öffentlichen Schlüssel A berechnet K = 24897 mod 353 = 160 • • • • B wählt XB = 233 B berechnet YB = 3233 mod 353 = 248 Austausch der öffentlichen Schlüssel B berechnet K = 40233 mod 353 = 160 Ein Angreifer könnte nun mit Hilfe von den bekannten q, α, YA und YB versuchen, mittels des diskreten Logarithmus z.B. XB zu berechnen. Das ist hier einfach, bei großen Zahlen aber unmöglich. Security - 04 Cryptology #120 60 Asymmetrische Nachrichtenverschlüsselung Security - 04 Cryptology #121 Asymmetrische Nachrichtenverschlüsselung • Annahme – A will mit B kommunizieren • Vorgehen – Jeder erzeugt je ein asymmetrisches Schlüsselpaar – Wenn B an A eine Nachricht schicken will, verschlüsselt er diese mit dem öffentlichen Schlüssel von A – Wenn A diese Nachricht bekommt, entschlüsselt sie die Nachricht mittels ihres privaten Schlüssels Security - 04 Cryptology #122 61 Ver- und Entschlüsselungsprozess A B Private Key of B Public Key of B Security - 04 Cryptology #123 Prozess des digitalen Signierens A B Public Key of A Private Key of A A Security - 04 Cryptology #124 62 Unterschied Symmetrisch-Asymmetrisch Symmetrisch Asymmetrisch Derselbe Algorithmus und Schlüssel für Verund Entschlüsselung Je ein Algorithmus und Schlüssel für Ver- und Entschlüsselung Sender und Empfänger besitzen denselben Schlüssel Sender und Empfänger müssen jeweils einen der zusammengehörigen Schlüssel besitzen Schlüssel muss geheim gehalten werden Einer der beiden Schlüssel muss geheim gehalten werden Unmöglich (oder zumindest sehr schwer), eine Nachricht ohne weitere Infos zu entschlüsseln Kenntnis des Algorithmus plus mitgelesene Nachrichten dürfen nicht ausreichen, um den Schlüssel zu bestimmen Zuzüglich Kenntnis des einen Schlüssels Security - 04 Cryptology #125 Anforderungen an einen Algorithmus • Entscheidende Komponente – • Diffie und Hellman hatten selbst keinen Vorschlag, aber sie konnten sagen, welche Bedingungen er erfüllen müsste – • Kryptoalgorithmus, der dieses Verfahren realisiert Siehe nächste Folie Diese Anforderungen erfüllen heute zwei bekannte Algorithmen – – RSA und Elliptic Curve Security - 04 Cryptology #126 63 Anforderungen an einen Algorithmus 1. Es muss leicht sein („computationally easy“): − Schlüsselpaar KUb (öffentlich) und KRb (privat) zu erzeugen − Mit KUb und Nachricht M Geheimtext zu erzeugen: C = EKUb(M) − Erhaltene Nachrichten zu entschlüsseln: M = DKRb(C) = DKRb(EKUb (M)) 2. Es muss schwer (computationally infeasible) sein: − Aus KUb den privaten Schlüssel KRb abzuleiten − Aus KUb und dem Geheimtext C Originalnachricht M abzuleiten 3. Ver- und Entschlüsselungsalgorithmen können in beliebiger Reihenfolge angewendet werden: M = EKUb (DKRb (M)) = DKUb (EKRb (M)) Security - 04 Cryptology #127 One-Way Functions • Anforderungen an einen Algorithmus lassen sich auf die Notwendigkeit der Verwendung einer Trap-door One-Way-Funktion zurückführen • One-Way-Function (Einwegfunktion) – Funktion, die jedes Element aus dem Definitionsbereich auf ein Element des Bildbereichs – Anforderungen • Funktionswert besitzt ein eindeutiges Inverses • Y = f(X) ist leicht zu berechnen • X = f-1(Y) ist schwer zu berechnen Security - 04 Cryptology #128 64 Trap-Door One-Way Functions • Eigenschaften wie bei One-Way – Aber X = f-1(Y) ist leicht zu berechnen, wenn weitere Informationen bekannt sind • Familie invertierbarer Funktionen fk, für die gilt: Y = fk(X) bei bekanntem k und X leicht zu berechnen X = fk -1(Y) bei bekanntem k und Y leicht zu berechnen X = fk -1(Y) schwer bei bekanntem Y und unbekanntem k Security - 04 Cryptology #129 RSA • Diffie-Hellman: nur Schlüsselaustausch – Keine Verschlüsselung/Signatur • Der erste Algorithmus, der die von Diffie und Hellman postulierten Eigenschaften erfüllte, wurde 1977 von – Rivest (R), – Shamir (S) und – Adleman (A) entwickelt. Security - 04 Cryptology #130 65 Eigenschaften von RSA • Blockchiffrieralgorithmus – Klar- und Geheimtextblöcke werden als große ganze Zahlen aufgefasst, ebenso der Schlüssel • Schlüssellänge ist variabel – Typisch heute: 1024, 2048, 4096 Bit • RSA basiert auf Eigenschaften von Primzahlen und modularer Arithmetik – Insbesondere wird ausgenutzt, dass es schwer ist, das Produkt zweier großer Primzahlen zu faktorisieren Security - 04 Cryptology #131 RSA in Kürze Schlüsselerzeugung: p und q sind Primzahlen, p ≠ q Wähle p, q Berechne n = p × q Berechne φ(n) = (p-1)(q-1) Wähle eine Ganzzahl e Berechne d Öffentlicher Schlüssel: Privater Schlüssel: ggt(φ(n), e) = 1; 1 < e < φ(n) d ≡ e-1 mod φ(n) KU = {e,n} KR = {d,n} Verschlüsselung: Klartext: Geheimtext: Entschlüsselung: M<n C = Me mod n Geheimtext: Klartext: Security - 04 Cryptology C M = Cd mod n #132 66 Sicherheit von RSA • Der vielversprechendste Angriff auf RSA (außer Brute Force) besteht in der Faktorisierung von n • Wenn es gelingt, aus n p und q abzuleiten, dann kann man φ(n) berechnen und damit d • Allerdings ist Faktorisierung ein hartes Problem, das mit zwei Stoßrichtungen angegangen wird – Einsatz von immer mehr Computer-Power – Immer verfeinerte Algorithmen Security - 04 Cryptology #133 MIPS-Jahre und Faktorisierung • 1999 wurde eine 512-Bit-RSA-Verschlüsselung in 8000 MIPSJahren geknackt – MIPS-Jahr: 1-Millionen-Befehle-pro-Sekunde-Rechner läuft ein Jahr – Das sind 3 x 1013 Befehle – Ein 1 GHz-Pentium entspricht etwa einer 250-MIPS-Maschine • Das heißt, wenn man eine solche Faktorisierung in 3 Monaten erreichen will, müssen 128 Rechner zusammenarbeiten • Schlüssellängen (also die Länge von n) von 1024 bzw. 2048 Bit gelten heute als sicher Security - 04 Cryptology #134 67 Literatur • [wobst01] Reinhard Wobst: Abenteuer Kryptologie, 3. Auflage, AddisonWesley, 2001 • [stallings03] William Stallings: Cryptography and Network Security Principles and Practice, 3rd ed., Prentice Hall, 2003 • [singh99] Simon Singh: Geheime Botschaften, Hanser, 1999 • [waetjen04] Dietmar Wätjen: Kryptographie, Spektrum Akademischer Verlag, 2004 • [schneier06] Bruce Schneier: Angewandte Kryptographie, Pearson Studium, 2006 • [enigma] Detaillierte Enigma-Einführung: http://www.codesandciphers.org.uk/enigma/ Security - 04 Cryptology #135 68