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