Übung zur Vorlesung Sicherheit Übung 1 Jessica Koch Jessica.Koch@kit.edu Thomas Agrikola Thomas.Agrikola@kit.edu 26.04.2018 1 / 38
Literatur zur Vorlesung Jonathan Katz, Yehuda Lindell. Introduction to Modern Cryptography. ISBN 1-584-88551-3. https://www.cs.umd.edu/~jkatz/imc.html Ross Andersson. Security Engineering. ISBN 0-470-06852-3. https://www.cl.cam.ac.uk/~rja14/book.html Skript auf der Vorlesungs-Webseite. 2 / 38
Ein paar Worte zu Übung und Übungsblättern Übungsblätter freiwillig Kein Klausurbonus o.ä. Aber: Klausur wird sich an den Übungen orientieren! Diskussionen/Fragen willkommen Übung ca. alle 2 Wochen Feedback-Kasten auf Website für anonymes Feedback Mailingliste https://lists.ira.uni-karlsruhe.de/mailman/ listinfo/sicherheit2018 Kommunikation, Fragen, Diskussionen,... 3 / 38
Übung: Struktur Übungsteil Besprechung des aktuellen Übungsblatts Nicht unbedingt immer alle Aufgaben Tutoriumteil Vorbereitung aufs nächste Übungsblatt Besprechen von ähnlichen Aufgaben Manchmal auch VL-Wiederholung 4 / 38
Experiment: Socrative https://b.socrative.com/login/student/ Room: SICHERHEIT App um Quiz durchzuführen Zugang durch Browser oder App Als Quizteilnehmer kein Account notwendig. 5 / 38
Fragen? 6 / 38
Restliche Agenda für heute Aufgaben besprechen Vigenère OTP Blockchiffren Beweisbare Sicherheit (falls Zeit) 7 / 38
Übungsblatt 1 Aufgabe 1. Gegeben ist der folgende Chiffretext. Ermitteln Sie den dazugehörigen Klartext. (Hinweis: Als Verschlüsselungsmechanismus wurde das Vigenère-Verfahren benutzt.) PGOGXLFFRNHRKCWSFFGYGZBUTUTVOWPTHSWHLGSIUFFIXTIOIYWVBHNRRHWTCKCDWDMSWITEHWYNFFOHRVGG FEGFCAPCHCLPZBOHRVGGYDRFSXDLFQJUFFSCPDDZJPEOQHTJGQTSVWGFIPDSTUGOGXLFFRBWZQVNHKCPJZVD HXTTFSYUICAYWFGSSDKOZQDNSRFRTSGXIYSIXTFTDFHJKCWSJWGPCFKBYDSSOSRZSBYIYSSFHZSFFERGGBDI RWXUFFHMTFKBJGKCFJBVAPJGXSBJGRZZDBVOBXXKKWQASSSFHZSFKDIOBFIKOQPTIHCLJVGGMDNSJJGGOGXL FFRXLYWQMPISRNUWWQZAKHCWTDSAGTIAODPCGCWTUIQJIYSGJRLFWYNFTOXNJHSRQVQOZHVOIXTIGANVYHBJ TUHCBGZHSIDNBCWTCSQYGFBWHPCZMXIFFSYWVDOXHNCFIQLGSWHNWZQCVSRKGVEIJCKDOXHNCFIGVGSYHRBR HJJSFXPISATGVZWPTCMHTGVIGJIYSGFBVDOXHNCFIHZAWQPIZMYWVACWTJHFNCXSBYGVEINGVASSIJTCWERG GBDIRGYGVBUYWVUVFKVOANMFTIUEVFQFHVOBIAFKSWRRGSQTKHSWHRBRIXXWHXDIQVFCXSWYBFBHMAPHVJVI SOYTIHVJSVUFJTKCKMXTVIXTIGKNACGIGKVFHYWVGMXIVACYWVFGFGXISQDEUSWERGGBDIRGUGFJWITDCFJH VQIWXKMSLTEHFTEPHVFCJVCWIVFDFHJKCWSJKWYWRKWITMOFNTKMCKRYOFFRKSFXXEHVJBVACWPSWZNIPOBI HVQIWXKMCKERGGBDIRGOTWTMFCVHOQTOOANCVHVJTWTSHIFTOIKZQSLXMSBYDLGSWHRPCZIRUCTSTVCNRVCT UPJGKTGUHVJNWCISSKVOYERGGBDIRGGPJSRTCKVWSZZBUTURDVWPJSOSSKOYNCXHVJUZFGYAVHHJGFTSFRYK CWSRFSOJJHOXBVACWPSZSFHEOWATCMGJAVQHJSGOGXLFFRXPERXZHKOGMPIRHTRIOQPPJFOSSFAZDVVBSWPK SRUPJGKTGUGQTBSWBNCXHKTDIACWTLBFJARHSILFFRXPEROQIVFWSVJCAJDWHVJAVHHJGJHCXEVQWFATVOWP THSWHFFBZBSSFXXJOBTIYSFLDFRAJIYCRGJKOGNCXZSIXTHWTCRFMBDIRWXCFHVFKZBUFEVFGTCRZZDSVGWL CVROQVFFWYWDTCWVVBSWPKWBLDSGQZGVDOXHNCFIHZGOSDKVSWVFCRRTKVCIWFKSATIOGPXEUIXTIGHTGVAS RQVFOUPJGKTGUQCSHZGHNCXCTFBZLCKJGDSWRRGSFCUZCBTIQOXTTVOWPTHSWHZGGNBZZOWIFOGPXEUHMTDH CWTDSAGTIOGJFLSBHTFTPNIJVOWSKCFJBVAPJGRBRTCCMOQXKHZJQZHVFGUSFYDTFOHZVUCSAPCBJWLBRWTU HKJCKMSNVYHHNBVGVFGUSFYDTFOHZWCFXTMSBQTKHSWERGGBDIRGQTJGWKIYSIXTIGWRECMQFEZHOQXJSGTC VCTYWVZSYIVFGFHBWBLJJSFXIFIGJQFHVQTKHSWHRBRIXXWHXLZZZTUKSBQTRRHTTRGMYDXISXHJIPXIZHIY XFBGXJTVOXTKCHMGVSOSSZHCTCVGIGHKWHZIZCBXLYWQMPISKJACYBTLEHCFIKOQPTIGGNBZZOWAPHMUXEUH MTGOGXLFFRTCVYSDQFOFIGFKVNVYSFNHRQCRBFBHWXTYYSDNBHTPKHOHZVFGNCKKCYWFIGFCUHVNGKSSSVFC UQTISZJPJSRFAZGHTUKVSRDJHQTBDCBUPJGKTGUHMUTJOZQDWKVNRYOFJRFBGNSVFSIXEGSHJISPJRRIGJIY SMFGVHCTTRGMYDXISXHVGDJRZOZQNRTHJGISGJPIQVNCXOBNCUWJNSLOZTCJCQNPCASIXRHVJCRASTU... 8 / 38
Socrative: Aufgabe 1/Vigenère https://b.socrative.com/login/student/ Room: SICHERHEIT App um Quiz durchzuführen Zugang durch Browser oder App Als Quizteilnehmer kein Account notwendig. 9 / 38
Übungsblatt 1 Aufgabe 1 Lösungsvorschlag zu Aufgabe 1. Beim Brechen von Vigènere- Chiffraten gehen wir wie folgt vor: Wir raten die Länge l des Schlüssels K = K 1 K 2... K l (oder wir nutzen die Kasiski-, Friedmann- oder die Autokorrelations-Methode). 220 200 180 160 140 120 100 80 0 5 10 15 20 25 30 Wir teilen das Chiffrat in l Teile auf, z.b. für l = 5: PGOGXLFFRNHRKCWSFFGYGZBUTUTVOWPT... 10 / 38
Übungsblatt 1 Aufgabe 1 Erwartete Buchstabenhäufigkeit im Englischen (Quelle: Wikipedia): A: ********************************* B: ****** C: *********** D: ***************** E: *************************************************** F: ********* G: ******** H: ************************ I: **************************** J: * K: *** L: **************** M: ********** N: *************************** O: ****************************** P: ******** Q: R: ************************ S: ************************* T: ************************************ U: *********** V: **** W: ********* X: * Y: ******** Z: 11 / 38
Übungsblatt 1 Aufgabe 1 Vorgehen: Wir vergleichen die natürliche Alphabetverteilung mit der Verteilung, die aus der Frequenzanalyse hervorging. Die Buchstabenverteilung für den obigen Chiffretext und ersten Teiltext, der mit K 1 verschlüsselt wurde, sieht wie folgt aus: 12 / 38
Übungsblatt 1 Aufgabe 1 Frequenzanalyse von C (1) : A: ************** B: ************** C: **************************** D: ******************************* E: ************* F: * G: ******************************* H: *********************************** I: ********************** J: ************ K: *** L: ******** M: * N: ****** O: P: ************************************** Q: ****** R: ****************** S: ************** T: ************************************************* T: ************************************************* U: *********** V: ******** W: ************ X: *********************** Y: Z: **** 13 / 38
Übungsblatt 1 Aufgabe 1 Vermutlich wurde E (der häufigste Buchstabe im natürlichen Alphabet) auf T abgebildet. Damit ist T E = 19 4 = 15 = P der wahrscheinlichste Kandidat für K 1. Wir folgen dieser Strategie für K 2 bis K 5 und erhalten einen Schlüsselkandidaten: PRDOF Beim Entschlüsseln des Chiffretexts mit diesem Schlüssel erhalten wir folgendes Ergebnis: APLSSWOCDISAHORDOCSTRIYGOFCSARACEERSUDEDF OCUSERLUTHEYTICAEIONTZPROVPI... Der Schlüssel ist also noch nicht korrekt, also betrachten wir z.b. die Stelle 3 genauer. 14 / 38
Übungsblatt 1 Aufgabe 1 Frequenzanalyse von C (3) : A: ************* B: ************************ C: ****************************** D: ********** E: ** F: ******************************** G: *************************************** H: *********************************************** I: ********** J: ** K: ************ L: * M: ****** N: O: *********************************** P: *** Q: ************* R: ************** S: ********************************************* T: ******** U: ****** V: ************* W: ********************* X: Y: *** Z: *********** 15 / 38
Übungsblatt 1 Aufgabe 1 Der Buchstabe E könnte beim Verschlüsseln auch auf den zweithäufigsten Buchstaben S abgebildet worden sein. Damit wäre S E = 18 4 = O ein Kandidat für K 3. Entschlüsseln mit dem Schlüssel PROOF ergibt (unter Hinzufügen von Groß-/Kleinschreibung, Leer- und Satzzeichen und Ersetzen von Zahlwörtern) den Klartext: A password is a word or string of characters used for user authentication to prove identity or access approval to gain access to a resource (for example: an access code is a type of password), which is to be kept secret from those not allowed access. The use of passwords is known to be ancient. The easier a password is for the owner to remember generally means it will be easier for an attacker to guess. However,... https://en.wikipedia.org/wiki/password 16 / 38
Übungsblatt 1 Aufgabe 2 OTP-Chiffrate sind verformbar: Wollen Chiffrat von COMPLE- XIFY auf Chiffrat von DOKTORMETA verformen M := 43 4F 4D 50 4C 45 58 49 46 59 (entspricht COMPLEXIFY, HEX-codiert im ASCII-Code) M = 44 4F 4B 54 4F 52 4D 45 54 41 (entspricht DOKTORMETA ) X := M M = 07 00 06 04 03 17 15 0C 12 18 C := C X = D8 C0 77 46 89 87 02 02 06 0A M = D(K, C ) = D(K, C X) = D(K, M K M M ) = D(K, K M ) = 44 4F 4B 54 4F 52 4D 45 54 41 Durchführbar ohne K zu kennen! K berechenbar: K = C M = 9C 8F 3C 12 C6 D5 4F 47 52 4B 17 / 38
OTP mehrfache Verwendung eines Schlüssels = = = 18 / 38
Socrative: Blockchiffren https://b.socrative.com/login/student/ Room: SICHERHEIT App um Quiz durchzuführen Zugang durch Browser oder App Als Quizteilnehmer kein Account notwendig. 19 / 38
Übungsblatt 1 Aufgabe 3 Wir wissen, dass die Blockchiffre (E, D): {0, 1} 8 {0, 1} 4 {0, 1} 4 bei Eingabe eines festen Schlüssels K 0 eine Eingabe M wie folgt auf eine Ausgabe C := E(K 0, M) abbildet: M 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 C 0000 0001 1001 1110 1111 1011 0111 0110 1101 0010 M 1010 1011 1100 1101 1110 1111 C 1100 0101 1010 0100 0011 1000 Verschlüsseln Sie die Klartexte M 1 = 0100 0111 0100 0001 und M 2 = 0100 1101 0100 0001 unter K 0 in den Betriebsmodi ECB, CBC, und CTR. Wählen Sie, falls nötig, einen geeigneten Initialisierungsvektor. 20 / 38
Übungsblatt 1 Aufgabe 3 M 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 C 0000 0001 1001 1110 1111 1011 0111 0110 1101 0010 M 1010 1011 1100 1101 1110 1111 C 1100 0101 1010 0100 0011 1000 CBC-Mode: C 0 := IV C i := E(K 0, M 1,i C i 1 ) M 1 = 0100 0111 0100 0001 C 0 = IV = 0000 C 1 = E(K 0, 0100 0000) = E(K 0, 0100) = 1111 C 2 = E(K 0, 0111 1111) = E(K 0, 1000) = 1101 C 3 = E(K 0, 0100 1101) = E(K 0, 1001) = 0010 C 4 = E(K 0, 0001 0010) = E(K 0, 0011) = 1110 C = 0000 1111 1101 0010 1110 (Rest analog) 21 / 38
Übungsblatt 1 Aufgabe 3 Worauf sollte bei der Wahl eines Initialisierungsvektors IV in den einzelnen Modi geachtet werden? Der IV muss für jede Verschlüsselung neu zufällig gleichverteilt gewählt werden! (Warum: Siehe nächstes Übungsblatt) 22 / 38
Verwundbarkeit von CBC Verschlüsselung: Nachricht M₁ M₂ M₃ Initialisierungsvektor (IV) Key E Key E Key E Ciphertext C₁ C₂ C₃ Entschlüsselung: Ciphertext C₁ C₂ C₃ Key D Key D Key D Initialisierungsvektor (IV) Nachricht M₁ Hier: Setze C 1 := C 1,alt M 2 M, dann entschlüsselt C 2 zu M. Quelle: Wikipedia M₂ M₃ 23 / 38
Übungsblatt 1 Aufgabe 4 Betriebsmodus Xor-Encrypt-Xor (XEX): i α α α Key₂ block cipher encryption Plaintext Plaintext Plaintext Key₁ block cipher encryption Key₁ block cipher encryption Key₁ block cipher encryption Ciphertext Ciphertext XEX mode encryption Ciphertext Quelle: Wikipedia Berechne Initialisierungsvektor mit zweitem Teil des Schlüssels aus Sektornummer i berechne für jede Position j innerhalb des Sektors: X j := E(k 2, i) α j 1 C j := E (k 1, (M j X j )) X j 24 / 38
Mathematische Grundlagen Definition (Ideal) Sei (R, +, ) ein kommutativer Ring mit 1. I R heißt Ideal, wenn gilt: (i) (I, +) ist Untergruppe von (R, +). (ii) Für alle r R gilt: r I I. Satz Sei R ein kommutativer Ring mit 1 und I R ein Ideal in R. Dann ist die Faktorgruppe (R/I, +) mit der Verknüpfung (a + I) (b + I) := ((a b) + I) ein kommutativer Ring mit 1. Erinnerung: R/I = {r + I r R} 25 / 38
Übungsblatt 1 Aufgabe 4 Verknüpfung mit α: Multiplikation in ( Z2 [X]/ ( X 128 + X 7 + X 2 + X + 1 ) Z 2 [X], +, ) α := X erzeugt multiplikative Gruppe Arithmetik : multipliziere Polynome und reduziere so lange bis Ergebnis Grad kleiner als 128 hat 26 / 38
Übungsblatt 1 Aufgabe 4 Für dieses Übungsblatt rechnen wir in GF (2 4 ) Auch hier erzeugt das Polynom X die multiplikative Gruppe Wir reduzieren modulo X 4 + X + 1 27 / 38
Rechenbeispiel multizipliere Polynome X 3 + 1 und X 2 + X + 1 und reduziere modulo X 4 + X + 1 (X 3 + 1) (X 2 + X + 1) = X 5 + X 4 + X 3 + X 2 + X + 1 X 5 + X 4 + X 3 + X 2 + X + 1 : X 4 + X + 1 = X + 1 X 5 + + X 2 + X X 4 + X 3 + 1 X 4 + + X + 1 X 3 + X 1 X 3 + 0 X 2 + 1 X + 0 1 1010 als Bitstring interpretiert 28 / 38
Übungsblatt 1 Aufgabe 4 M 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 C 0000 0001 1001 1110 1111 1011 0111 0110 1101 0010 M 1010 1011 1100 1101 1110 1111 C 1100 0101 1010 0100 0011 1000 XEX-Mode X j := E(K 0, i = 0011) α j 1 C j := E(K 0, M j X j ) X j M 1 = 0100 0111 0100 0001, key 1 = key 2 = K 0, i = 0011 X 1 = E(0011) = 1110 C 1 = E(0100 1110) 1110 = 1100 1110 = 0010 X 2 = 1110 α =? 29 / 38
Übungsblatt 1 Aufgabe 4 wir rechnen in GF (2 4 ) := Z 2 [X]/(X 4 + X + 1)Z 2 [X] das Polynom α := X erzeugt die multiplikative Gruppe 1110 α = (X 3 + X 2 + X) X = X 4 + X 3 + X 2 Reduziere modulo X 4 + X + 1: X 4 + X 3 + X 2 : X 4 + X + 1 = 1 X 4 + X + 1 X 2 = 1111 X 3 + X 2 + X + 1 30 / 38
Übungsblatt 1 Aufgabe 4 M 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 C 0000 0001 1001 1110 1111 1011 0111 0110 1101 0010 M 1010 1011 1100 1101 1110 1111 C 1100 0101 1010 0100 0011 1000 XEX-Mode X j := E(K 0, i = 0011) α j 1 C j := E(K 0, M j X j ) X j M 1 = 0100 0111 0100 0001, key 1 = key 2 = K 0, i = 0011 X 1 = E(0011) = 1110 C 1 = E(0100 1110) 1110 = 1100 1110 = 0010 X 2 = 1110 α = 1111 C 2 = E(0111 1111) 1111 = 1101 1111 = 0010 X 3 = 1111 α =? 31 / 38
Übungsblatt 1 Aufgabe 4 wir rechnen in GF (2 4 ) := Z 2 [X]/(X 4 + X + 1)Z 2 [X] das Polynom α := X erzeugt die multiplikative Gruppe 1111 α = (X 3 + X 2 + X + 1) X = X 4 + X 3 + X 2 + X Reduziere modulo X 4 + X + 1: X 4 + X 3 + X 2 + X : X 4 + X + 1 = 1 X 4 + X + 1 X 3 = 1101 X 3 + X 2 + 1 32 / 38
Übungsblatt 1 Aufgabe 4 M 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 C 0000 0001 1001 1110 1111 1011 0111 0110 1101 0010 M 1010 1011 1100 1101 1110 1111 C 1100 0101 1010 0100 0011 1000 XEX-Mode X j := E(K 0, i = 0011) α j 1 C j := E(K 0, M j X j ) X j M 1 = 0100 0111 0100 0001, key 1 = key 2 = K 0, i = 0011 X 1 = E(0011) = 1110 C 1 = E(0100 1110) 1110 = 1100 1110 = 0010 X 2 = 1110 α = 1111 C 2 = E(0111 1111) 1111 = 1101 1111 = 0010 X 3 = 1111 α = 1101 C 3 = E(0100 1101) 1101 = 0010 1101 = 1111 X 4 = 1101 α =? 33 / 38
Übungsblatt 1 Aufgabe 4 wir rechnen in GF (2 4 ) := Z 2 [X]/(X 4 + X + 1)Z 2 [X] das Polynom α := X erzeugt die multiplikative Gruppe 1101 α = (X 3 + X 2 + 1) X = X 4 + X 3 + X Reduziere modulo X 4 + X + 1: X 4 + X 3 + X : X 4 + X + 1 = 1 X 4 + X + 1 X 4 = 1001 X 3 + 1 34 / 38
Übungsblatt 1 Aufgabe 4 M 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 C 0000 0001 1001 1110 1111 1011 0111 0110 1101 0010 M 1010 1011 1100 1101 1110 1111 C 1100 0101 1010 0100 0011 1000 XEX-Mode X j := E(K 0, i = 0011) α j 1 C j := E(K 0, M j X j ) X j M 1 = 0100 0111 0100 0001, key 1 = key 2 = K 0, i = 0011 X 1 = E(0011) = 1110 C 1 = E(0100 1110) 1110 = 1100 1110 = 0010 X 2 = 1110 α = 1111 C 2 = E(0111 1111) 1111 = 1101 1111 = 0010 X 3 = 1111 α = 1101 C 3 = E(0100 1101) 1101 = 0010 1101 = 1111 X 4 = 1101 α = 1001 C 4 = E(0001 1001) 1001 = 1101 1001 = 0100 35 / 38
Übungsblatt 1 Aufgabe 4 Vor-/Nachteile: Chiffrate abhängig von Sektor-Adresse i und Position des Blocks j innerhalb des Sektors (tweakable) Ver- und Entschlüsselung parallelisierbar keine XOR-Homomorphie, aber: keine explizite Prüfsumme wie GCM Nachrichtenlänge (Größe des Sektors) muss ein Vielfaches der verwendeten Blocklänge sein 36 / 38
Betriebsmodus: XEX-based tweaked-codebook mode with ciphertext stealing (XTS) Ciphertext-stealing ermöglicht es den Betriebsmodus auf Nachrichten anzuwenden, die nicht durch die Blockgröße teilbar sind i α α Key₂ block cipher encryption Plaintext Plaintext Plaintext Key₁ block cipher encryption Key₁ block cipher encryption Key₁ block cipher encryption Ciphertext Ciphertext Ciphertext XEX with tweak and ciphertext stealing (XTS) mode encryption Quelle: Wikipedia 37 / 38
Betriebsmodus: XEX-based tweaked-codebook mode with ciphertext stealing (XTS) Vor-/Nachteile: wie XEX Nachrichten müssen nicht durch Blocklänge teilbar sein 38 / 38