2.1 Linear rückgekoppeltes Schieberegister
Gegeben sei das folgende linear rückgekoppelte Schieberegister (LFSR):

- Wie lauten charakteristisches Polynom, Begleitmatrix und Rekursionsgleichung?
- Geben Sie die Bits einer Periode an, wenn der Anfangszustand
gewählt wird. - Betrachtet wird nun ein LFSR mit Rückkopplungspolynom
. Bestimmen Sie die Länge einer Periode ausgehend vom Anfangszustand
. Welche Erklärung haben Sie für das Ergebnis?
Lösung 2.1
a)
Begleitmatrix:

Charakteristisches Polynom:


Rekursionsgleichung:

Begleitmatrix, charakteristisches Polynom und Rekursionsgleichung sind drei äquivalente Beschreibungen für das LFSR.
b)
Berechnung der nachfolgenden Bits mit Hilfe der Rekursionsgleichung:

Die ganze Periode ist: 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1
Die Periodenlänge ist mit 31 maximal, also
.
Erklärung: Polynom
ist ohne Rest durch das charakteristische Polynom teilbar. Wenn das charakteristische Polynom nicht primitiv ist, kann man nicht wie hier die volle Periodenlänge
erwarten.
c)
Rückkoppelungspolynom: 
Anfangszustand: 
Rekursionsgleichung: 
Periode: 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0
Periodenlänge: 15
2.2 Synchrone Stromchiffre (Übung 4.1)
Sei
das Alphabet der 26 Großbuchstaben. Gegeben sei folgende synchrone Stromchiffre:



Sei
und sei
.
- Verschlüsseln Sie den Klartext p = STROMCHIFFRE.
- Entschlüsseln Sie den Geheimtext c = MQRRSLSXXAPF.
- Entschlüsseln Sie den Geheimtext c = MQRRSLXXAPF.
- Entschlüsseln Sie den Geheimtext c = MQRRSLTAXXAPF.
Lösung 2.2
a)
Der Geheimtext lautet MQRRSLTXXAPF.
b, c, d)
Die drei entschlüsselten Texte lauten:
STROMCGIFFRE
STROMCLIIUH
STROMCHLFCCOB
Die Berechnung des Schlüsselstroms braucht bei synchronen Stromchiffren nur einmal zu erfolgen und kann somit bereits vor der eigentlichen Ver- bzw. Entschlüsselung durchgeführt werden. Das Ergebnis der Teilaufgabe b) zeigt, dass ein fehlerhaftes Zeichen bei der Entschlüsselung keine Auswirkungen auf die folgenden hat – synchrone Stromchiffren haben also den Vorteil, dass sich Fehler dieser Art nicht fortpflanzen. Anders sieht es aus, wenn Zeichen fehlen (c) oder es mehr Zeichen als im Klartext gibt (d). In beiden Fällen geht die Synchronisation verloren und die Entschlüsselung schlägt fehl. Beim Einsatz von synchronen Stromchiffren in der Praxis sind deshalb zusätzliche Maßnahmen zur Synchronisation vorzusehen.
2.3 Selbstsynchronisierende Stromchiffre (Übung 4.2)
Sei
das Alphabet der 26 Großbuchstaben. Gegeben sei folgende selbstsynchronisierende Stromchiffre:



Sei
und sei
.
- Verschlüsseln Sie den Klartext p = STROMCHIFFRE.
- Entschlüsseln Sie den Geheimtext c = KHYGJIFETKFX.
- Entschlüsseln Sie den Geheimtext c = KHYGJFETKFX.
- Entschlüsseln Sie den Geheimtext c = KHYGJJAFETKFX.
Lösung 2.3
a)
Der Geheimtext lautet KHYGJJFETKFX.
b,c,d)
Die Klartexte lauten:
STROMBBFFFRE
STROMYIFFRE
STROMCCFHFFRE
Hier wird die Selbstsynchronisation sichtbar. Nach zwei fehlerhaften Zeichen ist der Rest der Nachricht wieder korrekt.
2.4 Lineares Schieberegister (Übung 4.3)
Gegeben sei das folgende binäre lineare Schieberegister (LFSR):

- Welche Periode ist mit diesem LFSR maximal möglich?
- Geben Sie die Rekursionsgleichung, die Begleitmatrix sowie das charakteristische Polynom für folgende LFSRs an:
-
- Geben Sie die Ausgangsfolge (20 Elemente) der drei LFSRs aus Teilaufgabe b an. Der Anfangszustand sei jeweils (1, 1, 0, 0).
- Zeigen Sie, dass das charakteristische Polynom von LFSR biii) primitiv ist.
Lösung 2.4
a)
Der Zustandsvektor ist 4 Elemente lang. Damit lassen sich
Kombinationen darstellen. Die maximale Periodenlänge ist
.
b)
Begleitmatrizen:


Charakteristische Polynome:



Rekursionsgleichungen:



c)
Register 1: 
Die Periodenlänge beträgt 7.
Register 2: 
Die Periodenlänge beträgt 5.
Register 3: 
Die Periodenlänge beträgt 15, ist also maximal.
d)
Man sieht, dass das dritte Polynom primitiv sein muss, da es die maximale Periodenlänge erzeugt. Man könnte auch zeigen, dass sich
ohne Rest durch das dritte charakteristische Polynom teilen lässt.
2.5 Kombinationsgenerator (Übung 4.4)
Die nachfolgende Darstellung zeigt einen einfachen Kombinationsgenerator:

- Wie viele Schlüssel umfasst der Schlüsselraum
des Generators? - Mit welchem geheimen Schlüssel
wurde die Sequenz

erzeugt?
Lösung 2.5
a)
Der Kombinationsgenerator soll mittels eines Korrelationsangriffs gebrochen werden. Die Summe der Längen der drei LFSRs ist 3+5+4 = 12. Der geheime Schlüssel umfasst daher 12 Bit, weshalb der Schlüsselraum 212 = 4096 Elemente umfasst.
b)
Um statistische Abhängigkeiten der Ausgangssequenz z von den intern erzeugten Bitfolgen a, b und c zu herauszufinden, muss zunächst die nichtlineare Funktion analysiert werden, die a, b und c verknüpft.
Wahrheitstabelle:

Wie man sieht, stimmt a in 6 von 8 Fällen mit z überein. Um den Anfangszustand des LFSRs a und damit den ersten Teil des geheimen Schlüssels zu finden, werden alle möglichen Zustände getestet und der jeweilige Ausgabestrom mit den Werten von z verglichen:

Die größte Anzahl an Übereinstimmungen und gleichzeitig die geringste Abweichung vom Erwartungswert 0,75 liefert der Zustand sa = (0, 1, 1). Es kann davon ausgegangen werden, dass dies der gesuchte Teil des geheimen Schlüssels ist. Mit der gleichen Vorgehensweise ermittelt man die Anfangszustände von LFSR b und LFSR c. Diese lauten sb = (0, 0, 1, 0, 1) bzw. sc = (1, 0, 0, 1).
Im Vergleich zur vollständigen Schlüsselsuche müssen bei diesem Angriff anstelle von 212 Schlüsseln der Länge 12 Bit lediglich 23+25+24 = 56 Teilschlüssel mit einer Länge von max. 5 Bit getestet werden.
2.6 Stromchiffre A5/1 (Aufgabe 4.5)
Betrachtet wird die Stromchiffre A5/1.
- Wie lauten die drei charakteristischen Polynome der linear rückgekoppelten Schieberegister?
- Geben Sie eine Wahrheitstabelle für die „Mehrheitsfunktion” an.
Lösung 2.6
Hier ein Diagramm von A5/1:

a)
Die charakteristischen Polynome lauten:



b)
Wahrheitstabelle:

2.7 Golombs Postulate (Prüfung WT2010 1.7)
Stimmt die folgende Aussage?
Golombs Postulate dienen zur Berechnung der Koeffizienten des Rückkopplungspolynoms von linear rückgekoppelten Schieberegistern. Auf Grundlage dieser Berechnung wird die Schieberegisterfolge eine gute Pseudozufallsfolge.
Lösung 2.7
Die Aussage ist falsch. Golombs Postulate sind lediglich ein Anhaltspunkt für gute Pseudozufallszahlenfolgen, sie geben aber keine Vorgaben zur Berechnung derselben.
2.8 RC-4 (Prüfung WT2010, Aufgabe 3)
- Um welche Art von Stromchiffre handelt es sich bei RC4? (1 Punkt)
- Sie übernehmen den Part von Bob. Alice hat Ihnen den mit RC4 verschlüsselten Geheimtext 0×54:16:15:2f:ec:db:71:20:2d:68 gesendet. Zur Entschlüsselung haben Sie mit dem vereinbarten Schlüssel den Schlüsselstrom 0×13:43:41:68:a9:96:30:63:65:3c berechnet. Wie lautet die Nachricht von Alice? (2 Punkte)
- Stellen Sie dar, wie in RC4 der Schlüsselstrom generiert wird. Da der Aufwand der realen Stromchiffre für “Papier und Bleistift” jedoch zu hoch ist, sollen die Register auf die Länge 5 (statt 256) reduziert werden: Sie können also alle modulo 256 Operationen (vgl. Pseudocode) in Ihrer Darstellung modulo 5 durchführen. Wie lauten die ersten drei Zahlen des Schlüsselstroms, wenn der Schlüssel K = (3, 1, 2) verwendet wird? (3 Punkte)
Lösung 2.8
Pseudocode zu RC-4:
Initialize(byte[] K) begin j = 0 for i = 0 step 1 to 255 S[i] = i end for for i = 0 step 1 to 255 j = (j+S[i]+K[i mod l]) mod 256 swap(S, i, j) end for i = 0 j = 0 end KeyStreamByte(byte out) begin i = (i+1) mod 256 j = (j+S[i]) mod 256 swap(S, i, j) out = S[(S[i]+S[j]) mod 256] end
a)
Es handelt sich um eine synchrone Stromchiffre, da keine Rückkopplung vorhergehender Geheimtextzeichen erfolgt. Außerdem ist RC-4 eine softwareoptimierte Stromchiffre.
b)
Die Entschlüsselung erfolgt als Bitweises XOR.
Nachricht: 0×54:16:15:2f:ec:db:71:20:2d:68
Key: 0×13:43:41:68:a9:96:30:63:65:3c
Umwandlung der Hexadezimalzahlen in Bitstrings:
54: 01010100
16: 00010110
15: 00010101
2f: 00101111
ec: 11101100
db: 11011011
71: 01110001
20: 00100000
2d: 00101101
68: 01101000
13: 00010011
43: 01000011
41: 01000001
68: 01101000
a9: 10101001
96: 10010110
30: 00110000
63: 01100011
65: 01100101
3c: 00111100
Entschlüsseln:
c:
01010100 00010110 00010101 00101111 11101100 11011011 01110001 00100000 00101101 01101000
k:
00010011 01000011 01000001 01101000 10101001 10010110 00110000 01100011 01100101 00111100
p:
01000111 01010101 01010100 01000111 01000101 01001101 01000001 01000011 01001000 01010100
= 47:55:54:47:45:4D:41:43:48:54
Klartext: GUTGEMACHT
c)
Wir gehen nun auf die Schlüsselerzeugung ein. Gegeben ist K = (3, 1, 2). Initialisierung:


![Rendered by QuickLaTeX.com j \leftarrow \left( {j+S\left[ i \right]+K\left[ {i\bmod l} \right]} \right)\bmod 5](http://me-lrt.de/wp-content/ql-cache/quicklatex.com-1337361fff46b1bf96fbaaca834a6e6b_l3.png)
![Rendered by QuickLaTeX.com \quad \Rightarrow \quad j \leftarrow \left( {0+S\left[ 0 \right]+K\left[ {0\bmod 3} \right]} \right)\bmod 5 = \left( {0+0+3} \right)\bmod 5 = 3](http://me-lrt.de/wp-content/ql-cache/quicklatex.com-63ce99d46d6e39cadb86e23652b1d77b_l3.png)


![Rendered by QuickLaTeX.com j \leftarrow \left( {3+S\left[ 1 \right]+K\left[ {1\bmod 3} \right]} \right)\bmod 5 = \left( {3+1+1} \right)\bmod 5 = 0](http://me-lrt.de/wp-content/ql-cache/quicklatex.com-f567968ec562bf5b0b1464c24f23f365_l3.png)


![Rendered by QuickLaTeX.com j \leftarrow \left( {0+S\left[ 2 \right]+K\left[ {2\bmod 3} \right]} \right)\bmod 5 = \left( {0+2+2} \right)\bmod 5 = 4](http://me-lrt.de/wp-content/ql-cache/quicklatex.com-c35218bd2edaa9310931de8b60a27468_l3.png)


![Rendered by QuickLaTeX.com j \leftarrow \left( {4+S\left[ 3 \right]+K\left[ {3\bmod 3} \right]} \right)\bmod 5 = \left( {4+0+3} \right)\bmod 5 = 2](http://me-lrt.de/wp-content/ql-cache/quicklatex.com-cc3c72d0e5a4e2e3bc4c7a83bf5ef160_l3.png)


![Rendered by QuickLaTeX.com j \leftarrow \left( {2+S\left[ 4 \right]+K\left[ {4\bmod 3} \right]} \right)\bmod 5 = \left( {2+2+1} \right)\bmod 5 = 0](http://me-lrt.de/wp-content/ql-cache/quicklatex.com-b69089152605cb8c1c51c42a7cde6000_l3.png)

Schlüsselstrom:
KeyStreamByte(byte out) begin i = (i+1) mod 5 j = (j+S[i]) mod 5 swap(S, i, j) out = S[(S[i]+S[j]) mod 5] end



![Rendered by QuickLaTeX.com j \leftarrow \left( {j+S\left[ i \right]} \right)\bmod 5 = \left( {0+3} \right)\bmod 5 = 3](http://me-lrt.de/wp-content/ql-cache/quicklatex.com-ac09b2d5b785fec297dab2190203af36_l3.png)

![Rendered by QuickLaTeX.com ou{t_1}:\quad S\left[ {\left( {S\left[ i \right]+S\left[ j \right]} \right)\bmod 5} \right] = S\left[ 2 \right] = \boxed0](http://me-lrt.de/wp-content/ql-cache/quicklatex.com-98c76ca15872b80f751d34fd41f77fba_l3.png)

![Rendered by QuickLaTeX.com j \leftarrow \left( {j+S\left[ i \right]} \right)\bmod 5 = \left( {3+0} \right)\bmod 5 = 3](http://me-lrt.de/wp-content/ql-cache/quicklatex.com-0f9e93659ea5c1cb3cc3c46bffcd33aa_l3.png)

![Rendered by QuickLaTeX.com ou{t_2}:\quad S\left[ {\left( {S\left[ i \right]+S\left[ j \right]} \right)\bmod 5} \right] = S\left[ 3 \right] = \boxed0](http://me-lrt.de/wp-content/ql-cache/quicklatex.com-de7569642e9f1d1f5489c2e4e06e9fd1_l3.png)

![Rendered by QuickLaTeX.com j \leftarrow \left( {j+S\left[ i \right]} \right)\bmod 5 = \left( {3+0} \right)\bmod 5 = 3](http://me-lrt.de/wp-content/ql-cache/quicklatex.com-0f9e93659ea5c1cb3cc3c46bffcd33aa_l3.png)

![Rendered by QuickLaTeX.com ou{t_3}:\quad S\left[ {\left( {S\left[ i \right]+S\left[ j \right]} \right)\bmod 5} \right] = S\left[ 0 \right] = \boxed2](http://me-lrt.de/wp-content/ql-cache/quicklatex.com-336846e942415634c063d4529b39251c_l3.png)
Output: 0, 0, 2
Wichtig: Kombinationsgenerator, Shrinking-Generator, Filtergenerator





