Lösung - Arbeitsgruppe Kryptographie und Sicherheit
Transcription
Lösung - Arbeitsgruppe Kryptographie und Sicherheit
Institut für Kryptographie und Sicherheit Prof. Dr. Jörn Müller-Quade Musterlösung der Nachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13 Vorname Nachname Matrikelnummer Hinweise • Für die Bearbeitung stehen Ihnen 60 Minuten zur Verfügung. • Zum Bestehen der Klausur sind 20 der 60 möglichen Punkte hinreichend. • Es sind keine Hilfsmittel zugelassen. • Schreiben Sie Ihre Lösungen auf Aufgabenblätter und Rückseiten. • Zusätzliches Papier erhalten Sie bei Bedarf von der Aufsicht. Aufgabe 1 2 3 4 5 6 Σ mögliche a b 4 4 4 6 5 5 5 5 6 4 10x1 Punkte c Σ 2 10 - 10 - 10 - 10 - 10 10 60 erreichte Punkte a b c Σ - Seite 1 Aufgabe 1 (4+4+2 = 10 Punkte) a) Gegeben sei der folgende deterministische endliche Automat (DEA) mit dem Eingabealphabet Σ = {0, 1}. 1 0 0 1 q0 q1 q2 0,1 Geben Sie einen deterministischen endlichen Automaten (DEA) an, der die gespiegelte Sprache akzeptiert. Das heißt, Ihre Lösung soll ein Wort w ∈ {0, 1}∗ genau dann akzeptieren, wenn es rückwärts gelesen von dem oben gegebenen Automaten akzeptiert würde. Beispielsweise wird w = 01011 von dem obigen Automaten akzeptiert, Ihr Automat soll w = 11010 akzeptieren. Ist Ihre Lösung minimal? Hinweis: Es ist eventuell hilfreich, als Zwischenschritt zunächst einen nichtdeterministischen endlichen Automaten (NEA) für die gespiegelte Sprache anzugeben. Lösung: Der NEA für die gespiegelte Sprache entsteht aus dem oben gegebenen Automaten, indem man alle Pfeile umdreht, q1 zum Startzustand und q0 zum Endzustand macht. Der entspechende DEA sieht folgendermaßen aus: q2 0 0 q1 Die Lösung ist minimal. 0,1 1 q0 Seite 2 Geben Sie einen deterministischen endlichen Automaten (DEA) an, der genau die durch den folgenden regulären Ausdruck definierte Sprache über dem Alphabet Σ = {0, 1, 2} akzeptiert: 0 1 2 0 (0|1|2)∗ 0 1 (0|1|2)∗ 1 2 (0|1|2)∗ 2 Lösung: 0 1,2 q1 1,2 q2 0 0 b) 1 q0 1 0,2 q3 0,2 q4 1 2 2 0,1 q5 0,1 q6 2 Seite 3 c) Geben Sie einen endlichen Automaten (NEA oder DEA) an, der genau die Sprache aller durch 25 teilbaren Dezimalzahlen akzeptiert. Unter Dezimalzahlen“ ” verstehen wir hier alle Worte über dem Alphabet Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, führende Nullen sind also erlaubt. Das leere Wort kann als Darstellung der Null gehandhabt werden. Gehen Sie davon aus, dass Zahlen immer beginnend mit der höchstwertigen Ziffer eingelesen werden. Lösung: q1 0, 5 0 0 ε q0 5 q3 7 2, q2 Σ Seite 4 Aufgabe 2 a) Gegeben sei die Sprache L1 = {an b2n | n ∈ N}. (4 (2+2) + 6 (5+1) = 10 Punkte) 1. Geben Sie einen Kellerautomaten an, der L1 akzeptiert. Der Automat soll mit leerem Keller akzeptieren. 2. Sei nun ein Kellerautomat M gegeben, der L1 akzeptiert. Konstruieren Sie daraus einen Kellerautomaten, der die Sprache L11 = {an b2n am b2m | n, m ∈ } akzeptiert. N Lösung: 1. Zustände: q0 , q1 , q2 , Startzustand q0 : a, →xx q0 a,$ →xx q1 b,x → b,x → q2 Am Anfang muss ein $ auf dem Keller liegen und der Übergang a, $ → xx von q0 → q1 dabei sein. 2. Es handelt sich hier um die Konkatenation von L1 mit sich selbst, d.h. ein Kellerautomat, der L11 akzeptiert, entsteht durch eine Konkatenation von M mit sich selbst, z.B. so: q0 , →x M ,x →x M ,x → q3 Das x hat dabei die Rolle, dass der Automat nicht nach dem ersten Durchlauf von M aufhört (also mit leerem Stack akzeptiert). Seite 5 b) Gegeben sei die Sprache L2 = {an bn c2n | n ∈ N}. 1. Zeigen Sie mit dem Pumping Lemma für kontextfreie Sprachen, dass L2 nicht kontextfrei ist. 2. Ist L2 regulär? Lösung: 1. Sei l die Pumpkonstante aus dem Pumping Lemma. Sei w = an bn c2n , n = l. Nach dem Pumping Lemma gibt es eine Zerlegung w = uvzxy mit (1) |vzx| ≤ l und (2) |vx| > 0 und (3) ∀i∈N0 uv i zxi y ∈ L2 . Wegen (1) besteht vx entweder nur aus a’s, nur aus b’s oder nur aus c’s, oder es existieren r, s ∈ N, r + s ≤ l mit vx = ar bs (vx enthält kein c) oder vx = br cs (vx enthält kein a). Nun müssen all diese möglichen Zerlegungen betrachtet werden und gezeigt werden, dass jeweils ein i ∈ N existiert mit uv i zxi y ∈ / L2 . Fall 1 vx besteht nur aus a’s, nur aus b’s oder nur aus c’s: Dann gilt nach (3) w2 = uv 0 zx0 y ∈ L2 . Nach (2) hat w2 aber nun entweder zu wenig a’s, zu wenig b’s oder zu wenig c’s. Damit ist w2 ∈ / L2 . Widerspruch. Diese Zerlegung funktioniert also nicht. Fall 2 vx enthält kein a oder kein c: Dann enthält wegen (2) w2 = uv 0 zx0 y zu viele a’s bzw. c’s. Damit ist w2 ∈ / L2 , was ein Widerspruch zu (3) ist. Da es keine Zerlegung w = uvzxy gibt, für die (1), (2) und (3) gilt, kann L2 nicht kontextfrei sein, denn das wäre ein Widerspruch zum Pumplemma für kontextfreie Sprachen. 2. Nein. Begründung (nicht verlangt): Da L2 nichteinmal kontextfrei ist, kann L2 auch nicht regulär sein. Seite 6 Aufgabe 3 (5 (2+3) + 5 = 10 Punkte) ∗ a) Gegeben seien zwei Sprachen L1 , L2 ⊆ Σ mit den folgenden Eigenschaften: • L1 ist entscheidbar. • L2 ist semi-entscheidbar, aber nicht entscheidbar. • L1 ∩ L2 = ∅. Es sei L3 := L1 ∪ L2 . Zeigen Sie (jeweils mit Begründung): (1) L3 ist semi-entscheidbar. (2) L3 ist nicht entscheidbar. Lösung: (1) Es gilt: x ∈ L3 ⇔ x ∈ L1 oder x ∈ L2 (dies ist wegen L1 ∩ L2 = ∅ sogar ein exklusives Oder). Sei M1 eine Maschine, die L1 entscheidet und M2 eine Maschine die L2 semi-entscheidet. Konstruiere Semi-Entscheider M3 für L3 : Bei Eingabe x wird zuerst M1 (x) ausgeführt. Dies terminiert in endlicher Zeit. Ist M1 (x) = 1, gebe 1 aus, da also x ∈ L1 . Ist M1 (x) = 0 , überprüfe ob x ∈ L2 durch Ausführen von M2 (x). Ist x ∈ L2 terminiert dies nach endlicher Zeit mit Ausgabe 1 und somit kann 1 ausgegeben werden. M3 semi-entscheidet L3 . (2) Angenommen, L3 sei entscheidbar. Sei M3 eine Maschine, die L3 entscheidet. Sei M1 eine Maschine, die L1 entscheidet. Konstruiere Entscheider M2 für L2 : Führe bei Eingabe x zuerst M3 (x) aus. Dies terminiert in endlicher Zeit. Fall 1 M3 (x) = 0: Daraus folgt, dass x ∈ / L1 ∪ L2 und somit insbesondere x∈ / L2 . Gib 0 aus. Fall 2 M3 (x) = 1: Führe M1 (x) aus. Dies terminiert in endlicher Zeit. Ist M1 (x) = 1, so gilt x ∈ L1 und wegen L1 ∩ L2 = ∅ folgt x ∈ / L2 , gebe also 0 aus. Ist M1 (x) = 0, so gilt x ∈ / L1 , woraus wegen x ∈ L3 und L1 ∩ L2 = ∅ folgt, dass x ∈ L2 , gib also 1 aus. M2 ist ein Entscheider für L2 , da beide Fälle x ∈ L2 und x ∈ / L2 in endlicher Zeit korrekt entschieden werden. Dies steht im Widerspruch dazu, dass L2 nicht entscheidbar ist, somit kann L3 also nicht entscheidbar sein. Seite 7 b) Gegeben sei die Sprache L∀ = {hM i | M hält auf allen Eingaben}, also die Sprache der Gödelnummern aller Turingmaschinen, die auf allen Eingaben halten. Ist L∀ entscheidbar? Beweisen Sie Ihre Behauptung. Lösung: L∀ ist nicht entscheidbar. Nimm zum Widerspruch an, es existiere ein Entscheider H, der L∀ entscheidet. Konstruiere die Maschine M 0 (hM i, w): M 0 verwirft seine Eingabe und führt die (hardgecodete) Maschine M auf der (hardgecodeten) Eingabe w aus. Dann hält M 0 genau dann auf jeder Eingabe, wenn M auf w hält. (M 0 hält entweder auf keiner oder auf allen Eingaben.) H kann also verwendet werden, um das Halteproblem zu entscheiden. Blitz. Seite 8 Aufgabe 4 (5+5 = 10 Punkte) a) Das Entscheidungsproblem SET-COVER ist folgendermaßen definiert. • Gegeben: Eine endliche Menge M = {1, . . . , n}, Zahlen k, m ∈ N und eine Menge S = {S1 , . . . , Sm } ⊆ P(M ) von Teilmengen von M . S • Frage: Gibt es k Indizes i1 , . . . , ik sodass j=1,...,k Sij = M ? Zeigen Sie: SET-COVER ist NP-vollständig. Erinnerung: Das Entscheidungsproblem VERTEX-COVER wurde in der Vorlesung folgendermaßen definiert. • Gegeben: Ein Graph G = (V, E) und eine Zahl k ∈ N. • Frage: Gibt es k Kanten ei1 , . . . , eik ∈ E sodass jedes v ∈ V an einem eij (für j = 1, . . . , k) inzident ist? Lösung: Wir zeigen zunächst dass S SET-COVER ∈ NP. Gegeben einen Zeugen (i1 , . . . , ik ) läßt sich die Vereinigung j=1,...,k Sij in O(m · n) Schritten berechnen S und damit verifizieren ob j=1,...,k Sij = M gilt. Dieser Aufwand ist polynomiell in der Größe der Eingabe. Damit ist SET-COVER∈ NP. Aus der Vorlesung ist bekannt dass VERTEX-COVER NP-vollständig ist. Wir zeigen nun durch Reduktion von VERTEX-COVER dass SET-COVER NP-vollständig ist. Sei (G, k) mit G = (V, E) eine VERTEX-COVER-Instanz und es gelte |V | = n und |E| = m. Wir definieren nun eine SET-COVER-Instanz (M, k 0 , S). Wir setzen M = {1, . . . , n}, k 0 = k. Für jede Kante ei = (vi1 , vi2 ) ∈ E definieren wir eine Menge Si = {i1 , i2 }. Wir setzen nun S = {S1 , . . . , Sm }. Wir stellen zunächst fest dass diese Reduktion nur polynomiellen Aufwand hat, da der wesentliche Schritt, das Erzeugen der Menge S, in O(m) berechnet werden kann. Wir müssen nun noch zeigen dass die VERTEX-COVER-Instanz (G, k) genau dann eine Lösung besitzt, wenn die SET-COVER-Instanz (M, k 0 , S) eine Lösung besitzt. Ist (ei1 , . . . , eik ) ein Zeuge für (G, k), dann ist jedes v = vi ∈ V mit einem eij inzident, es gilt also i ∈ {eij,1 , eij,2 , also i ∈ Sj . Damit ist (i1 , . . . , ik ) ein Zeuge für (M, k 0 , S). Mit derselben Argumentation liefert Zeuge (i1 , . . . , ik ) für (M, k 0 , S) einen Zeugen (ei1 , . . . , eik ) für (G, k). Seite 9 b) Wir definieren nun das Suchproblem SEARCH-SET-COVER. • Gegeben: Eine endliche Menge M = {1, . . . , n}, eine Zahl k ∈ N und eine Menge S = {S1 , . . . , Sm } ⊆ P(M ) von Teilmengen von M . S • Gesucht: k Indizes i1 , . . . , ik sodass j=1,...,k Sij = M gilt, falls sie existieren. Nehmen Sie nun an, dass Sie über ein Orakel verfügen, welches beliebige Instanzen des Entscheidungsproblems SET-COVER entscheidet. Geben Sie einen Polynomialzeit-Algorithmus an, welcher gegeben ein solches Orakel, das Suchproblem SEARCH-SET-COVER löst. Lösung: Sei (M, k, S) eine SEARCH-SET-COVER-Instanz. Wir können nun wie folgt eine Lösung für diese Instanz berechnen. Wir prüfen zunächst ob (M, k, S) überhaupt eine Lösung besitzt. Dazu beferagen wir das Orakel mit der Eingabe (M, k, S). Falls das Orakel falsch ausgibt, so geben wir auch falsch aus. Ansonsten berechnen wir einen Zeugen I = {i1 , . . . , ik } wie folgt. Setze zunächst I = {1, . . . , m}, I¯ = ∅ und wiederhole den folgenden Schritt solange bis I = ∅. • Sei i1 das erste Element in I. Setze I = I\{i1 }. Setze S 0 = {Si ∈ S|i ∈ ¯ Befrage nun das Orakel mit der Instanz (M, k, S 0 ). Falls das Orakel I ∪ I}. war ausgibt, so wird der Index i1 nicht für eine Lösung benötigt und wir können ihn verwerfen. Falls das Orakel falsch ausgibt, so wird i1 für die Lösung benötigt und wir setzen I¯ = I¯ ∪ {i1 }. Sobald I = ∅ gilt, gib I¯ aus. Dieser Orakel-Algorithmus benötigt maximal O(m) Iterationen der Schleife, läuft also in Polynomialzeit. Seite 10 Aufgabe 5 (6 (3+3) + 4 a) 1. Gegeben sei der folgende [7,4]-Hamming-Code C mit und Prüfmatrix H. 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 G = 0 1 1 1 , H = 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0 1 (2+2) = 10 Punkte) Generatormatrix G 1 1 1 1 0 1 Finden Sie mittels Syndromdecodierung ein Codewort c ∈ C, welches Hamming-Abstand 1 zu dem Wort c̃ = (1 1 0 0 1 0 1)T besitzt. Welches Informationswort m gehört zu c? 2. Zeigen Sie: Die folgende Generatormatrix G0 erzeugt keinen gültigen [7,4]Hamming-Code mit Minimaldistanz 3. 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 1 G0 = 1 0 1 1 0 0 0 1 0 0 1 0 Lösung: 1. Das Syndrom ist 0 s = H · c̃ = 0 1 Damit folgt, dass das Codewort c = (0 1 0 0 1 0 1)T lautet und das Nachrichtenwort m = (0 1 0 1). 2. Die Spalten der Generatormatrix G0 müssen Codewörter sein. Da die 1. Spalte aber ein Hamming-Gewicht von 2 hat, kann es sich nicht um einen Hamming-Code mit Minimaldistanz 3 handeln. Seite 11 b) 1. Geben Sie eine binäre Huffman-Codierung für das Wort ananas“ an. Ge” hen Sie dabei davon aus, dass eine Quelle die Zeichen unabhängig voneinander ausgegeben hat. 2. Zeigen Sie, dass eine Kodierung von den Blättern eines Huffman-Baums ausgehend zur Wurzel keinen gültigen Huffman-Code erzeugt. Hinweis. Betrachten Sie den folgenden Huffman-Baum: 1 1 0 0,x c 0 1 a b Lösung: 1. Wir berechnen zuerst die relativen Häufigkeiten der Zeichen. a n s 1 2 1 3 1 6 Dann gruppieren wir die jeweils niedrigsten Wahrscheinlichkeiten und erstellen einen Baum. 1 1 n 1 0 0,5 a 0 s Daraus ergibt sich folgender Huffman-Code: a 0 n s 11 10 2. Für Huffman-Codes muss Präfixfreiheit gelten. Dies ist nicht mehr gegeben, wenn der Code von den Blättern ausgehend erzeugt wird. An dem Beispielbaum ist erkennbar, dass das Codewort c = 0 ein Präfix von b = 01 ist. Seite 12 Aufgabe 6 (10 Punkte) Bei dieser Multiple-Choice-Aufgabe gibt jede richtige Antwort 1 Punkt; für jede falsche Antwort wird 1 Punkt abgezogen, die Gesamtpunktzahl der Aufgabe kann jedoch nicht negativ werden. Für nicht beantwortete Fragen (kein Kreuz) werden keine Punkte abgezogen. Sei L0 die Menge der Sprachen vom Chomsky-Typ 0 über einem ∗ Alphabet A. Es gilt L0 = 2A . Wenn La und Lb kontextfreie Sprachen sind, dann ist immer auch La ∩ Lb kontextfrei. Ist eine Sprache L rekursiv aufzählbar, so ist auch ihr Komplement L rekursiv aufzählbar. Gilt NP 6= coNP, so ist P 6= NP. X wahr f alsch wahr f alsch wahr f alsch X X X wahr f alsch Gilt P = NP, so ist jede Sprache L ∈ P NP-vollständig (mit Ausnahme der leeren Sprache und der Sprache, welche alle Wörter wahr enthält). Es gilt P ⊆ RP ⊆ NP ⊆ PP. f alsch wahr f alsch wahr f alsch wahr f alsch X X Gegeben sei ein Kanal mit Eingangsverteilung X und AusgabeverP 1 ) teilung Y . Die Äquivokation ist durch x∈X,y∈Y p(x, y) · log2 ( p(y|x) gegeben. Huffman-Codes sind Kanalcodierungen. Für eine Funktion f : D → B ist die Menge {y | ∃x ∈ D : f (x) = y} immer entscheidbar, falls f berechenbar, und D und B endlich sind. Das Eulerkreisproblem aus der Vorlesung ist auf SAT in Polynomialzeit reduzierbar. X X X wahr f alsch X wahr f alsch