Lösungen zu Grundlagen der Kryptologie SS 008 Hochschule Konstanz Dr.-Ing. Harald Vater Giesecke & Devrient GmbH Prinzregentenstraße 159 D-81677 München Tel.: +49 89 4119-1989 E-Mail: hvater@htwg-konstanz.de
Lösungen zu Kapitel 1 1.1 Der Vergleich von H A L L O und M F Q Q T ergibt eine zyklische Verschiebung von 5 Stellen im Alphabet. K W J Z S I J um 5 Stellen zurückgeschoben, ergibt F R E U N D E Ciphertext: M F Q Q T K W J Z S I J Plaintext: H A L L O F R E U N D E 1. Es werden soviele Zeichen benötigt, um eine Sinnhaftigkeit bzw. Sinnlosigkeit eines Plaintextes (nach Ausprobieren aller Schlüssel) erkennen zu können. 1.3 Es wird nur ein Ciphertextzeichen und das zugehörige Plaintextzeichen benötigt. Die zyklische Verschiebung zwischen beiden Zeichen ist der Cäsar- Schlüssel. 1.4 Betrachtung der Verschiebung der einzelnen Buchstaben: Plaintext: K R Y P T O L O G I E Ciphertext: L T B Q V R M Q J J G Verschiebung: 1 3 1 3 1 3 1 Der sich wiederholende Schlüssel läßt eine Vigenère-Chiffre mit dem Schlüsselwort A B C vermuten. 1.5 Man läßt den Buchstaben A verschlüsseln, bekommt das zugehörige Ciphertextzeichen, dann B, usw. bis Z. Hiermit kann dann die komplette Verschlüsselungstabelle aufgestellt werden. Notwendig: 6 Plaintextbuchstaben bei Alphabet mit 6 Zeichen (genaugenommen nur 5, denn der 6te Buchstabe ist dann der der übrig bleibt). 1.6 Genau soviele Plain / Ciphertext-Zeichen, wie das Schlüsselwort lang ist (müssen aber aufeinanderfolgende Plain / Ciphertext-Zeichen sein).
3 1.7 Plaintext: K R Y P T O L O G I E Schlüsselwort: G D M G D M G D M G D Verschiebung: 7 4 13 7 4 13 7 4 13 7 4 Ciphertext: R V L W X B S S T P I 1.8 50 Gruppen zu je 1 000 Buchstaben macht 50 000 Ciphertextzeichen 1.9 Dies ist nur unter der Bedingung möglich, daß der Informationsgehalt (die Entropie) des Plaintextes kleiner oder gleich dem des Schlüssels ist. Mögliches Verfahren: Kompression des Plaintextes auf maximal 1 kbyte, dann One-Time-Pad Verschlüsselung. 1.10 Plaintext: K R Y P T O L O G I E Schlüsselwort: G E H E I M N I S S E Verschiebung: 7 5 8 5 9 13 14 9 19 19 5 Ciphertext: R W G U C B Z X Z B J Diese Vernam-Chiffre ist nicht perfekt (beweisbar) sicher. Der Schlüssel wird zwar nur ein einziges mal verwendet, er stellt aber offensichtlich keine echte Zufallszahl dar, sondern einen deutschen Text. Statistische Besonderheiten der deutschen Sprache können für einen Angriff ausgenutzt werden.
4 Lösungen zu Kapitel.1 Ja, gleicher Startwert und Schlüssel bedeutet gleiche Pseudozufallsfolge Z. C 1 = P + 1 Z (P i : Plaintext, C i : Ciphertext) C = P + Z Der Angreifer muß nur Ciphertexte verexoren und erhält die ver- EXORten Plaintexte: C 1 + C = P 1 + Z + P + Z = P1 + P Beispiel: P 1 : C 1 : P : C : C 1 + C :. Es müssen Listen mit je 56 Einträgen zu 8 Byte angelegt werden. 56 8 Byte = 60 Byte = 30 GByte = 1, 07 Mrd. GByte.3 Eine Woche hat 7 4 60 60 = 604 800 sec. Ein DES-Chip schafft somit 6, 048 10 11 Insgesamt sind 56 = 7, 06 10 16 Verschlüsselungen pro Woche. Verschlüsselungen notwendig. Um dies in einer Woche zu schaffen, benötigt man 7,06 1016 6,048 10 11 = 119 143 DES-Chips. Diese kosten 595 715 DM.
5.4 Lange 000...0 Folgen zu Beginn des Plaintextes würden einen periodischen Ciphertext mit DES k (ICV ) ICV DES k (ICV ) ICV... C 0 = DES k (ICV ) liefern, denn: C 1 = DES k ( DESk (ICV ) ) = DES k ( DES 1 k (ICV ) ) = ICV Sind die 000...0 Folgen inmitten des Plaintextes, muß man nur den ICV durch den vorhergehenden Ciphertextblock ersetzen. Lange 111...1 Folgen liefern hingegen einen zufälligen Ciphertext. Deswegen würde man größere schwarze Bereiche (000...0 Folgen) des Originalbildes durch regelmäßige Muster auch im verschlüsselten Bild wiedererkennen. Beispiel: Originalbild: Bild verschlüsselt mit DES im CBC-Mode und schwachem Schlüssel: Bild verschlüsselt mit DES im CBC-Mode und normalem Schlüssel:.5 a.) ECB-Mode: 1 Block im Plaintext falsch. b.) CBC-Mode 1 Block im Plaintext falsch und 1 Bit im darauffolgenden Plaintextblock falsch. c.) OFB-Mode 1 Bit im Plaintext falsch d.) CFB-Mode 1 Bit im zugehörigen m-bit Plaintextblock falsch und mehrere darauffolgende m-bit Plaintextblöcke falsch.
6.6 a.) 70 Byte müssen um Byte gepaddet werden 7 Byte b.) 80 Byte müssen um 8 (!) Byte gepaddet werden 88 Byte.7 a.) Nein, übliches Verfahren b.) Ja, gleicher Schlüssel und gleicher ICV bedeuten gleiche Pseudozufallsfolge, siehe.1.8 ECB-Mode: Blockchiffre, jeder Block wird mit der gleichen Operation verschlüsselt. CBC-Mode: Stromchiffre, Verschlüsselungsoperation abhängig von vorangegangenen Daten. OFB-Mode: Additive Stromchiffre, Pseudozufallsfolge wird EXORverknüpft (modulo addiert) CFB-Mode: Additive Stromchiffre, Pseudozufallsfolge wird EXORverknüpft (modulo addiert).9 Dieses Verfahren stellt ein Sicherheitsrisiko dar. Der MAC ist grundsätzlich einer Known-Plaintext-Attack ausgesetzt, womit sich der Schlüssel durch Exhaustive Key Search finden läßt (einfacher DES). Hat der Angreifer den Schlüssel gefunden, kennt er damit auch die linke Hälfte des Triple-DES Verschlüsselungsschlüssels. Damit ist die Sicherheit der Datenverschlüsselung nur noch die einer einfachen DES-Verschlüsselung. Der Kunde sollte für den MAC auf jeden Fall einen separaten Schlüssel verwenden..10 Nein, bei der MAC-Berechnung darf es nicht möglich sein (mit realistischem Aufwand), zu manipulierten Daten den zugehörigen MAC zu finden. Bei Padding mit'00'-bytes hätten beispielsweise die Daten 'AB' 'CD' 'EF' und 'AB' 'CD' 'EF' '00' den gleichen MAC..11 Nein, würde ein Angreifer beispielsweise zwei 8-Byte Blöcke vertauschen, ergäbe dies die gleiche EXOR-Summe und damit den gleichen MAC. Ein 8 Byte langer CRC wäre auch nicht sicherer, da es auch hier einfache Verfahren gibt, die Daten so zu manipulieren, daß der gleiche CRC entsteht und damit der gleiche MAC (z.b. durch Addition von Vielfachen des Generatorpolynoms).
7.1 Bekannt sind P n, C n und C n 1. Diese hängen folgendermaßen zusammen: P n 1 P n + + DES K ( P n + Cn 1 ) = C n Nun kann der Angreifer alle mögliche K in diese Gleichung einsetzen, bis sie mit Gleichheit erfüllt ist. K DES C n 1 K DES C n.13 Nein, (lineare) Schieberegisterschaltungen liefern vorhersagbare Zufallszahlen. Mit einer Known-Plaintext-Attack kann ein Stück Pseudozufallsfolge ermittelt werden. Alle folgenden Pseudozufallszahlen ließen sich hieraus berechnen..14 Zwei aufeinanderfolgende Zufallszahlenblöcke sind ausreichend. Z i = DES k ( IV + i ) = IV + i = DES 1 k ( Z i ) Z i+1 = DES k ( IV + i + 1 ) = IV + i + 1 = DES 1 k ( Z i+1 ) nach IV + i aufgelöst und gleichgesetzt, ergibt: DES 1 k ( Z i ) = DES 1 k ( Z i+1 ) 1 Diese Gleichung kann für alle möglichen k überprüft werden..15 G = 'A1''A''A3''A4' Z = '37''F''AB''4D' Teilgeheimnisse: T 1 = Z = '37''F''AB''4D' T = G + Z = '96''50''08''E9' Rekonstruktion: G = T 1 + T = 'A1''A''A3''A4'
8 Lösungen zu Kapitel 3 3.1 a.) Bei Verwendung symmetrischer Verfahren müßten ( n ) = n (n 1) Schlüssel erzeugt werden. = 500 499 = 14 750 b.) Bei Verwendung von Public-Key Verfahren müßten nur 500 Schlüssel (Paare) erzeugt werden. 3. a.) 7 + 9 mod 11 = 5 Probe : 5 9 mod 11 = 7 b.) 7 9 mod 11 = 9 Probe : 9 + 9 mod 11 = 7 c.) 7 9 mod 11 = 8 Probe : 8 9 mod 11 = 63 9 mod 11 = 7 d.) 7/9 mod 11 = Probe : 9 mod 11 = 7 e.) 7 9 mod 11 = 8 Probe : 8 7 mod 11 = 1 (Fermat : 7 10 mod 11 = 1 7 9 7 mod 11 = 1) 3.3 a.) 13 100 mod 101 = 1 (Fermat) b.) 1305 mod 101 = 5 mod 101 = 3 c.) 199 mod 101 = 1 00 mod 101 = 1 mod 101 = 10 mod 101 = 51 d.) 47 180 mod 77 = 1 (Euler) Φ(77) = (7 1) (11 1) = 60 e.) 13 mod 77 = 3 mod 77 = 8 3.4 1: Ordnung 1 : Ordnung 3 3: Ordnung 6 (primitives Element) 4: Ordnung 3 5: Ordnung 6 (primitives Element) 6: Ordnung 3.5 Primitive Elemente aus GF(11):, 6, 7 und 8, Suche durch Ausprobieren. 3.6 Die Ordnungen müssen Teiler von p 1 = 100 sein. Folgende Ordnungen treten auf (alle Teiler von 100): 1,, 4, 5, 10, 0, 5, 50, 100.
9 3.7 Der geheime Exponent d ist 104 Bit lang, da d max. den Wert Φ(n) 1 annehmen kann (wegen d = 1 mod Φ(n)) und Φ(n) genauso lang ist wie n. e Public Key: 104 Bit Modulus + 17 Bit Exponent = 1041 Bit Secret Key: 104 Bit Modulus + 104 Bit Exponent = 048 Bit 3.8 n = 3 11 = 33 Φ(n) = (3 1) (11 1) = 0 d = 1 e mod Φ(n) = 1 3 mod 0 = 1 3 mod 0 = 7 Schlüsselpaar: Public Key: n = 33, e = 3 Secret Key: (n=33), d=7 Verschlüsselung: y = 7 3 mod 33 = 19 683 mod 33 = 15 Ciphertext: y = 15 Entschlüsselung: x = 15 7 mod 33 = 170 859 375 mod 33 = 7 Plaintext: x = 7 3.9 n = p q = 5 7 = 35 Schlüsselpaar: Public Key: n = 35 Secret Key: p=5, q =7 Verschlüsselung: y = 16 mod 35 = 56 mod 35 = 11 Ciphertext: y = 11 Entschlüsselung: x = 11 mod 35 = 9, 16, 19 oder 6 Plaintext: x = 16 (daß es diese Wurzel ist, muß aus der Struktur des Plaintextes hervorgehen) 3.10 Öffentliche Schlüssel: y A = 3 6 mod 17 = 15 y B = 3 7 mod 17 = 11 y C = 3 1 mod 17 = 4 gemeinsame symmetrische Schlüssel: Z AB = 15 7 mod 17 = 11 6 mod 17 = 8 Z BC = 4 7 mod 17 = 11 1 mod 17 = 13 Z AC = 4 6 mod 17 = 15 1 mod 17 = 16 3.11 Eine digitale Signatur kann nur ein Teilnehmer berechnen (nämlich der Besitzer des Secret Keys). Einen gültigen MAC können mindestens Teilnehmer berechnen (nämlich beide Kommunikationspartner). Somit leistet MAC nur Datenauthentisierung, während digitale Signaturen sowohl Daten- als auch Benutzerauthentisierung gewährleisten.
10 3.1 Mit einer Hash-Länge von n Bit ergibt das Birthday-Paradoxon: 80 = ln() n 1, 177 n = (log ( 1 1,177 ) + 80) 159, 53 [Bit] n 3.13 Nein, wenn als Schlüssel der Hash-Input verwendet werden würde, wäre bei dem ersten Block der Schlüssel bekannt (der IV der Hashfunktion), und man könnte mit der Decrypt-Funktion des Chiffrieralgorithmus einfach die Einwegfunktionalität überwinden. 3.14 Das Rabin-Verfahren sollte überall dort eingesetzt werden, wo für die Signaturerzeugung ausreichend Rechenleistung in einer sicheren Umgebung zur Verfügung steht (PC, Koprozessor), und für die Signaturüberprüfung nur sehr begrenzte Rechenleistung verfügbar ist (z.b. Chipkarte ohne Koprozessor). 3.15 Signaturerzeugung: p : 104 Bit q : 160 Bit α : 104 Bit x : 160 Bit = insgesamt 368 Bit Signaturüberprüfung: p : 104 Bit q : 160 Bit α : 104 Bit y : 104 Bit = insgesamt 33 Bit 3.16 Ja, das kann passieren. Mit ( s = H + k x r mod q ) wird s=0, falls H = x r mod q. Das ist sicherheitsrelevant, da sich ein Angreifer in diesem Fall den Secret Key ausrechnen kann: x = H r mod q. Wahrscheinlichkeit (H kann als zufällig angenommen werden): 160. 3.17 3 = 3 3 = 9 mod 17 3 4 = 9 9 = 13 mod 17 3 8 = 13 13 = 16 mod 17 3 10 mod 17 = 3 3 8 mod 17 = 9 16 mod 17 = 8
11 3.18 Beim DSA besteht der Exponent aus 160 Bit, davon sind durchschnittlich 80 Bit eine'1'. Somit müssen 159 Quadrierungen und durchschnittlich 79 Multiplikationen berechnet werden. 3.19 ohne CRT: y = 1 7 mod 35 = 35 831 808 mod 35 = 33 mit CRT: mod 5 : x p = 1 mod 5 =, d p = 7 mod (5 1) = 3 y p = 3 mod 5 = 3 mod 7 : x q = 1 mod 7 = 5, d q = 7 mod (7 1) = 1 y q = 5 1 mod 7 = 5 Rücktransf.: y = ( ( 1 mod 5) 7 y 7 p + ( 1 mod 7) 5 y 5 q) mod 35 = (3 7 3 + 3 5 5)mod 35 = 138 mod 35 = 33 3.0 a.) RSA: Faktor 4 b.) DSA: keine Anwendung der CRT möglich, da modulo einer Primzahl gerechnet wird. 3.1 Bei n-stelligen Binärzahlen ist durchschnittlich jede ( n ln()) -te Zahl eine Primzahl. Da gerade Zahlen keine Primzahlen sind (außer der ), ist durchschnittlich jede ( 1 n ln() )-te ungerade Zahl eine Primzahl. 1 n ln() = 640 ln() 443, 6 Versuche notwendig 3. Wahl z.b. a = : 0 mod 1 = 1 048 576 mod 1 = 4 1 1 ist keine Primzahl. p 1 3.3 Wahl z.b. Z = : α = Z q mod p = 0 mod 101 = 95 Probe: 95 1 mod 101 = 95 95 mod 101 = 36 95 3 mod 101 = 87 95 4 mod 101 = 84 95 5 mod 101 = 1 3.4 Aus Zusammenstellung der Current Codebreaking Times : Moduluslänge für Elliptische-Kurven Verfahren: ca. 160 Bit Rechenaufwand, um diese Systeme zu brechen: ca. 10 11 MIPS-Years Rechenzeit bei 10 10 MIPS : ca. 10 Jahre