Sie sind auf Seite 1von 9

Lösungsvorschlag

Übung 2 - Historische Kryptographie und Linux Einführung.


Ausgabe: 13. November 2020 - Besprechung: 20. November 2020

Aufgabe 7 Historische Verschlüsselung - Caesar Chiffre


Ihr kryptographie-begeisterter Freund schickt Ihnen eine verschlüsselte Nachricht
„mpszigvctxs“. Sie wissen, dass er hierfür die Chiffre ROT-4 benutzt hat, eine Caesar-
Chiffre mit Schlüssel 4 (i.e. a = e) über dem Alphabet mit 26 Zeichen:

E(m) = (m + 4) mod 26

1. Wie lautet die entschlüsselte Nachricht?

2. Beim nächsten Treffen ärgert sich Ihr Freund, dass er eigentlich von der Sicherheit
der Caesar-Chiffre nicht begeistert ist. Was hat er an der Chiffre zu bemängeln?
Schlagen Sie eine Möglichkeit vor, die Sicherheit zu erhöhen.

3. Ist es sinnvoll, die Nachricht mehrfach mit verschiedenen Schlüsseln zu verschlüs-


seln um ihren Sicherheitsgrad zu erhöhen?

4. Warum ist es nicht nur nicht sinnvoll, sondern auch unsicher, die Nachricht zweimal
mit Schlüssel 13 zu verschlüsseln?

Lösung
1. Die Nachricht ist „ilovecrypto“.

2. Die Caesar Chiffre verschlüsselt gleiche Klartextblöcke zu gleichen Chiffretext-


blöcken, welches die Kryptoanalyse vereinfacht. Die Vigenère-Chiffre liefert eine
Verbesserung. Aussenden wäre auch eine Benutzung der Chiffre im Cipherblock-
Chaining-Modus (CDC) möglich, wobei die Verschlüsselung jedes Klartextblockes
nun auch von den vorhergehenden Blöcken abhängt: ci = E(mi + ci–1 ), wobei c0
als zufälliger Wert gewählt wird.

3. Eine zwei oder mehrfach Verschlüsselung entspricht einer einfachen Verschlüs-


selung mit dem Schlüssel der aus der Summe der Einzelschlüssel besteht, und
benötigt somit einen höheren Aufwand ohne den Sicherheitsgrad der Chiffre zu
erhöhen.

4. ROT-13 ist selbstinvers, d. h. eine zweite Anwendung entspricht der Entschlüsse-


lung, da x – 13 ≡ x + 13 mod 26.

IT-Sicherheit 6 Übungsblatt 2
Lösungsvorschlag

Aufgabe 8 Historische Verschlüsselung - Vigenère Chiffre


Ein Nachteil der Vigenère-Chiffre ist ihre Anfälligkeit für sogenannte Known-Plaintext-
Angriffe. Konkret bedeutet dies: Kennt man zu jedem Schlüsselsymbol ein Klartextsym-
bol, das mit diesem Symbol verschlüsselt wurde, und das Chiffrat, lässt sich direkt der
Schlüssel bestimmen. Betrachten sie das Chiffrat lwijbskeaima. Der Klartext beginnt
mit this is.

1. Wie lautet der Schlüssel? (Leerzeichen wurden bei der Verschlüsselung entfernt.)

2. Wie lautet der gesamte Klartext?

Für die nächsten Aufgaben sollten Sie sich eine Skriptsprache Ihrer Wahl zu nutzte
machen, um einen mit der Vigenère-Chiffre verschlüsselten Text mittels den Methoden
von Kasiski/Babbage und Friedman zu entschlüsseln:

S Yivn Mowhmlo gfkibbrx, lz wrgw, apr zeno nc ahdr jinmxlxk gba xj tvpyvzz
ow olzq. Pl entx tsl rh amyr yn.... lv ntbarj, Xci Rlldme. Zlz Eeqplz? fgmy
Hvci Apbakcx. Kfx Hvfcim xf uahb? Yojz! yiexk Nbuo. Olv Sgpdrxwz! wrgw
Scaqadpc. Colzlzldrx! ralg fgmy me aavzhy. Hzig Ravctnx kelqxk nbx e hsd-
cga’a ekjgitrbvv. Gxmxop, fx zivj jdrrjef. Jhz gvr pmn kw vz? Ebezl, t zqtt-
mamtyga xnawz. Cvq, lhqq Jizt Kfhbouz, M xee bh pb. Gnimi zq tu iayazv?
jybk Nbuo rmkf uymnzlgijq xekvzihier. Rla, fgmy Hvci Apbakcx. Cgyl, buk
Yimmckzm, nth Zzvprapvtk. Olvpx pa nt eiwnck. Icg, O’pg lrtx aw gnmio rz-
hbb vz. ... Jjsb eehvpkh dqgympmazpt ek fbz enzgc. Lfu evvt? ni nezb. Lldrt
eih r ftsn zopgmfl rliey, wvmu Bxlx Gnspkyr. Ebvxcmgp rlw Mwbq fgmeixk
ig kexl fralz. Fkzzr rlw h pnrj hmcjbvv lkemw...! kfxf keoiy me aavzhy. Czw,
ucvsivsiy Hvci Apbakcx, Z qtpl V’j lvzv rh apvto vffsm pb, qohi’x Z? [Qxcma
gry e yyem uvrpdse wxhzf reoii.... Dhvs nth Gyeippty gvz pflz nwak, fpx kfx-
pz qkwxiebxubf isixzlnl eugx olvw laieziy] Kfmw Twetmik, jybk Lrkt Olfszob
nz pvwk. Ck..nwbj qjveggn, W Qkik Xymnnpg yedh Cmhuyhgag rvpovcfrc,
ys pmn oiik...im, xyym pa... Nt Eiwnck mwe esp? merxyzhvxzh Ucxw Buuy-
blk ktqmfzmxecjr. Fmf, O lvzv. Ral bju qzr jfbcmekh rmkf xexrixvrtw. Momvx
avmkggn pnj rjx scxu qa bedr. Kfxym ekegpp gl vvr? hvzekfxk Xuuyxlx. Ralzr
xivpcw bz wak, gjrwgktmq Jizt Kfhbouz. Xj Imckfbuorb? Xf ral oekeo Ulclaqbt
sa Pzdx, apr Ardzvpll iaj iqiiwmoqam? Czw. Smmo ws zlz qvl ahl okii xiy-
bumq lsm xygl twzkro, xycby tvbin lrb ulma g tmigykhbvur asi gm, apre lvh
scxu arrixxvb ta jvxxc ej ravar clj afsek evzrzwj ral iayazv, ssm ldrt wj xycr
mwhth olvklltikw bejnbuo nth nulgktqam pdov cqjqgkh xlzjwyma. Gry cfs’kl
zrght xf ebcm vz xj yj? sknmq Rsjrjstdt. V gq. Isn? Lhd, anoh Yivn Mowhmlo.
Xycr iwgn pdgbcw aprov yvp jbwa. Gnspky G wvv’g zldrb, ywkmq Jizt Kfh-
bouz. xcek whb’zr msdrx rh sqxk mo. Hfclu’b zgxoii! qtpl Cnspgye. Pl uhyx
frfu ba! Vbc! Rja? zljbqekh Yivn Mowhmlo. Cvq! Gve... Nrp mmxfm, zivj xci
tmfwcgkv, vru qxabykh drkm lptrtgz exybu. Buk xrs dcg mqqmioiu. Ral brt-
wdse utz cahivvrzel. Gba’vz vvyesg aux bszlz aw yooz mk, muzmebiy Hvci

IT-Sicherheit 7 Übungsblatt 2
Lösungsvorschlag

Apbakcx. Kces cf! Gpg vzeaa, anoh Yivn Mowhmlo. Xyc Tuajkv os kfx Nzr-
gx Lyvqmpwa... Ein..! Sw Jbmm, gni Prztxyar gry Imckfbuorb... wrgw Kmrv
Xcsleaa. Gry...! Mn... wrgw Kmrv Xcsleaa, iaj tvyjcw. Fmf...! Ow... Tij...!!!...?
Dhybl-zaj, wrgw Kmrv Xcsleaa, evzl drwggpbr seeijrr hvq iegq.

Hinweis: Zur Verschlüsselung wurde das Vigenère-Quadrat mit 26 Zeichen verwendet.


Zeichen, die dort nicht vorkommen, wurden direkt ins Chiffrat übernommen, der Schlüs-
sel wird hierbei nicht weiter gezählt.

3. Der Kasiski-Test
Hinter dem Kasiski-Test steckt eine einfache Idee: In der Regel wird eine Buchsta-
benfolge (z. B. »the«), die im Klartext mehrfach auftritt, auf verschiedene Schlüs-
selbuchstaben treffen und somit in verschiedene Geheimtexte übersetzt. Trifft sie
jedoch auf den selben Schlüsselbuchstaben, so wird die gesamte Zeichenfolge in
den gleichen Geheimtext transformiert. In einem solchen Fall teilt die Länge des
Schlüssels den Abstand zwischen diesen Zeichenfolgen.

KeksKeksKeksKeksKeksK
KaffeeKaffeeKaffeeTee
uepxoiuspjowuepxoidwo
Suchen Sie gleiche Zeichenfolgen im verschlüsselten Text und bestimmen Sie
daraus die (wahrscheinliche) Länge des Schlüssels!

4. Der Friedman-Test
Der Kasiski-Test liefert die Länge des Schlüssels nur bis auf Vielfache (bzw. Teiler)
der tatsächlichen Schlüssellänge. Bei langen Texten und verhältnismäßig dazu kur-
zen Schlüsseln gibt es zahlreiche Möglichkeiten. Mit dem Friedman-Test bestimmt
man darum die Größenordnung h des Schlüssels. Damit hat man ein gutes Indiz
für die tatsächliche Länge des Schlüssels. Zur Herleitung dieses Tests benötigt
man ein paar Vorüberlegungen, man erhält dann aber eine Formel für die Größen-
ordnung des Schlüsselwortes. Man berechnet hierzu die Wahrscheinlichkeit, dass
zwei beliebige, aus dem Chiffrat heraugegriffene Symbole identisch sind. Sei I die
Menge der Symbole und ni die Häufigkeit des Symbols i im Chiffrat, dann ergibt
sich als Wahrscheinlichkeit der sogenannte Koinzidenzindex κ als:
P
ni (ni – 1)
i∈I
κ=
n(n – 1)
P
wobei n = ni die Länge des Chiffrats ist.
i∈I
Der Wert κ wird umso kleiner, je gleichmäßiger die Verteilung der Symbole ist.
Man kann zeigen, dass für einen Text, in dem alle Symbole gleichverteilt sind,
κ ≈ 0,0385 gilt, und dies auch eine Unterschranke für κ ist. Für einen deutschen
Text gilt κ ≈ 0,0762, für einen englischen κ ≈ 0,066.

IT-Sicherheit 8 Übungsblatt 2
Lösungsvorschlag

Man zerlegt nun den Geheimtext entsprechend der vermuteten Schlüssellänge h in


einzelne Gruppen. Die Wahrscheinlichkeit ein Paar identischer Zeichen aus einer
Gruppe zu ziehen ist etwa 0,066, die Wahrscheinlichkeit ein Paar aus verschiede-
nen Gruppen zu ziehen etwa 0,0385. Daraus lässt sich die Gesamtwahrschein-
lichkeit in Abhängigkeit von h berechnen. Da diese mit dem statistisch ermittelten
Wert von κ identisch sein muss, gilt:

(0,066 – 0,0385)n
h=
κ(n – 1) – 0,0385n + 0,066

5. Wie kann man mit diesen Informationen die Verschlüsselung brechen?

6. (freiwillig) Entschlüsseln Sie den Text! Wie lautet der Schlüssel?

Lösung
1. Aus dem Vigenère-Quadrat lässt sich der Schlüssel direkt ablesen: Sparta

2. Die vollständige Nachricht lautet: This is Sparta

3. Der Kasiski-Test
S Yivn Mowhmlo gfkibbrx, lz wrgw, apr zeno nc ahdr jinmxlxk gba xj tv-
pyvzz ow olzq. Pl entx tsl rh amyr yn.... lv ntbarj, Xci Rlldme. Zlz Eeqplz?
fgmy Hvci Apbakcx. Kfx Hvfcim xf uahb? Yojz! yiexk Nbuo. Olv Sgpdrx-
wz! wrgw Scaqadpc. Colzlzldrx! ralg fgmy me aavzhy. Hzig Ravctnx kel-
qxk nbx e hsdcga’a ekjgitrbvv. Gxmxop, fx zivj jdrrjef. Jhz gvr pmn kw
vz? Ebezl, t zqttmamtyga xnawz. Cvq, lhqq Jizt Kfhbouz, M xee bh pb.
Gnimi zq tu iayazv? jybk Nbuo rmkf uymnzlgijq xekvzihier. Rla, fgmy
Hvci Apbakcx. Cgyl, buk Yimmckzm, nth Zzvprapvtk. Olvpx pa nt eiw-
nck. Icg, O’pg lrtx aw gnmio rzhbb vz. ... Jjsb eehvpkh dqgympmazpt
ek fbz enzgc. Lfu evvt? ni nezb. Lldrt eih r ftsn zopgmfl rliey, wvmu Bx-
lx Gnspkyr. Ebvxcmgp rlw Mwbq fgmeixk ig kexl fralz. Fkzzr rlw h pnrj
hmcjbvv lkemw...! kfxf keoiy me aavzhy. Czw, ucvsivsiy Hvci Apbakcx,
Z qtpl V’j lvzv rh apvto vffsm pb, qohi’x Z? [Qxcma gry e yyem uvrpd-
se wxhzf reoii.... Dhvs nth Gyeippty gvz pflz nwak, fpx kfxpz qkwxieb-
xubf isixzlnl eugx olvw laieziy] Kfmw Twetmik, jybk Lrkt Olfszob nz pvwk.
Ck..nwbj qjveggn, W Qkik Xymnnpg yedh Cmhuyhgag rvpovcfrc, ys pmn
oiik...im, xyym pa... Nt Eiwnck mwe esp? merxyzhvxzh Ucxw Buuyblk
ktqmfzmxecjr. Fmf, O lvzv. Ral bju qzr jfbcmekh rmkf xexrixvrtw. Momvx
avmkggn pnj rjx scxu qa bedr. Kfxym ekegpp gl vvr? hvzekfxk Xuuyxlx.
Ralzr xivpcw bz wak, gjrwgktmq Jizt Kfhbouz. Xj Imckfbuorb? Xf ral oe-
keo Ulclaqbt sa Pzdx, apr Ardzvpll iaj iqiiwmoqam? Czw. Smmo ws zlz
qvl ahl okii xiybumq lsm xygl twzkro, xycby tvbin lrb ulma g tmigykhbvur
asi gm, apre lvh scxu arrixxvb ta jvxxc ej ravar clj afsek evzrzwj ral iayazv,
ssm ldrt wj xycr mwhth olvklltikw bejnbuo nth nulgktqam pdov cqjqgkh

IT-Sicherheit 9 Übungsblatt 2
Lösungsvorschlag

xlzjwyma. Gry cfs’kl zrght xf ebcm vz xj yj? sknmq Rsjrjstdt. V gq. Isn?
Lhd, anoh Yivn Mowhmlo. Xycr iwgn pdgbcw aprov yvp jbwa. Gnspky G
wvv’g zldrb, ywkmq Jizt Kfhbouz. xcek whb’zr msdrx rh sqxk mo. Hfclu’b
zgxoii! qtpl Cnspgye. Pl uhyx frfu ba! Vbc! Rja? zljbqekh Yivn Mowhmlo.
Cvq! Gve... Nrp mmxfm, zivj xci tmfwcgkv, vru qxabykh drkm lptrtgz exy-
bu. Buk xrs dcg mqqmioiu. Ral brtwdse utz cahivvrzel. Gba’vz vvyesg
aux bszlz aw yooz mk, muzmebiy Hvci Apbakcx. Kces cf! Gpg vzeaa,
anoh Yivn Mowhmlo. Xyc Tuajkv os kfx Nzrgx Lyvqmpwa... Ein..! Sw
Jbmm, gni Prztxyar gry Imckfbuorb... wrgw Kmrv Xcsleaa. Gry...! Mn...
wrgw Kmrv Xcsleaa, iaj tvyjcw. Fmf...! Ow... Tij...!!!...? Dhybl-zaj, wrgw
Kmrv Xcsleaa, evzl drwggpbr seeijrr hvq iegq.
Mit einem simplen Skript werden gleiche Zeichenfolgen gesucht und ihr Abstand
bestimmt. Um den Rechenaufwand überschaubar zu halten, werden nur Stringpär-
chen bis zu einer bestimmten Länge gesucht. Dabei werden nur Treffer mit maxi-
maler Länge gezählt.

Python Code for the Kasiski-Test


1 # ! usr / bin / ipython3
2 import r e
3 from c o l l e c t i o n s import Counter
4 from p p r i n t import p p r i n t
5
6 def k a w a s k i _ t e s t ( t e x t ) :
7
8 #remove e v e r y t h i n g b u t c h a r a c t e r s
9 t e x t = r e . sub ( r ’ \W+ ’ , ’ ’ , t e x t )
10
11 # d e f i n e max and min l e n g h t s
12 max_match_lenght = 25
13 min_match_lenght = 3
14 t e x t _ l e n g h t = len ( t e x t )
15
16 #initialise lists
17 locations = [ ]
18 distances= [ ]
19
20 # f i n d a l l d u p l i c a t e s t r i n g s w i t h s i z e between max and min
lenght
21 #and f i n d d i s t a n c e s between them
22 f o r i i n range ( t e x t _ l e n g h t ) :
23 l o c a t i o n s . append ( [ ] )
24 l o c a t i o n s [ i ] = [ l i s t ( [ ] ) f o r _ i n range ( max_match_lenght +1) ]
25
26 # count down from l a r g e s t range t o s m a l l e s t range
27 f o r m i n range ( max_match_lenght , min_match_lenght , –1) :
28 s t r i n g = t e x t [ i : i +m]
29

IT-Sicherheit 10 Übungsblatt 2
Lösungsvorschlag

30 # f i n d _ i n d e x where s t r i n g i s l o c a t e d ,
31 # and f i n d a l l f u r t h e r i n d i c i e s
32 find_index = t e x t . f i n d ( s t r i n g , 0)
33
34 # go t h r o u g h a l l l o c a t i o n s o f s t r i n g
35 while f i n d _ i n d e x ! = – 1:
36 l o c a t i o n s [ i ] [m] . append ( f i n d _ i n d e x )
37 f i n d _ i n d e x = t e x t . f i n d ( s t r i n g , f i n d _ i n d e x +1)
38
39 # c a l c u l a t e d i s t a n c e s i f more than one s t r i n g found :
40 i f len ( l o c a t i o n s [ i ] [m] ) > 1 :
41 f o r j i n range ( 1 , len ( l o c a t i o n s [ i ] [m] ) ) :
42 d i s t a n c e s . append ( l o c a t i o n s [ i ] [m] [ j ] – l o c a t i o n s [ i ] [m
][0])
43 break # found l a r g e s t s t r i n g f o r l o c a t i o n i
44
45 p p r i n t ( Counter ( d i s t a n c e s ) )
46
47 return

Die fünf häufigsten Abstände sind:

Abstand Häufigkeit Faktorisierung (<= 20)


1520 38 2 · 4 · 5 · 8· 10 · 16 · 19 · 20
20 36 2 · 4 · 5 · 10 · 20
60 36 2 · 3 · 4 · 5 · 6 · 10 · 12 · 15 · 20
310 29 2 · 5 · 10
260 26 2 · 4 · 5 · 10 · 13 · 20
380 22 2 · 4 · 5 · 10· 19 · 20

All diese Abstände haben 5 und 10 als gemeinsame Teiler. Der Länge des Schlüs-
sels ist also ebenfalls entweder 5, 10, oder durch 5 oder durch 10 teilbar.

4. Der Friedman-Test
Zählt man die Buchstaben im Geheimtext, erhält man folgende Häufigkeiten:
a b c d e f g h i j k l m n
92 74 67 27 81 54 77 62 85 53 84 91 98 57
o p q r s t u v w x y z
56 62 43 104 47 56 43 98 65 93 70 94
Damit ergibt sich: κ = 0,041051
Dieser Wert spricht für eine Vigenère-Verschlüsselung. Mit der zweiten Formel
erhalten wir:

0,0385 · 1833
h= = 10,722
0,041051 · (1696 – 1) – 0,0385 · 1833 + 0,066

IT-Sicherheit 11 Übungsblatt 2
Lösungsvorschlag

Dies spricht für einen Schlüssel der Länge 10.

5. Kennt man die Schlüssellänge n, hier 10, so kann man die Vigenère-Verschlüsselung
als Kombination von n Caesar-Chiffren betrachten. Man wählt also jeweils die Zei-
chen mit Abstand n als eine Gruppe, die man dann mit einer Häufigkeitsuntersu-
chung wie bei der klassischen Caesar-Chiffre angreift. Denn diese Zeichen wur-
den alle mit demselben Schlüsselbuchstaben verschlüsselt, entsprechen also dem
Resultat einer monoalphabetischen Verschlüsselung. Man spricht darum bei der
Vigenère-Verschlüsselung auch von einer polyalphabetischen Verschlüsselung.

IT-Sicherheit 12 Übungsblatt 2
Lösungsvorschlag

(a) Keychar0 (b) Keychar1

(c) Keychar2 (d) Keychar3

(e) Keychar4 (f) Keychar5

(g) Keychar6 (h) Keychar7

IT-Sicherheit (i) Keychar8 13 (j) Keychar9 Übungsblatt 2


Lösungsvorschlag

An diesem Plot können wir einfach ablesen, welcher Buchstabe bei der Verschlüs-
selung jeweils aus dem e entstanden ist, und daraus den Schlüssel ablesen.

6. Der verschlüsselte Text wurde mit dem Schlüssel everything erzeugt. Den vollen
Text können Sie auf Moodle nachlesen, es handelt sich um einen Auszug des
Buchs „The Hitchhikers Guide to the Galaxy“.

Aufgabe 9 Kryptographische Systeme


Welcher signifikante Unterschied besteht zwischen historischen kryptographische Syste-
me (z.B. die Caesar-Chiffre oder ENIGMA) und modernen kryptographische Methoden
(z.B. AES)?

Lösung
Die Sicherheit von historischen kryptographischen Systemen beruht meist nicht nur der
Geheimhaltung eines Schlüssels, sonder auch auf der Geheimhaltung des Verschlüs-
selungsverfahren, z.B. die Walzenverdrahtung von ENIGMA. Dies bedeutet, dass das
kryptographische System gebrochen ist, wenn die Methode der Verschlüsselung be-
kannt wird.
Moderne kryptographische Algorithmen beruhen auf Kerckhoffs’ Prinzip; hier ist die Me-
thode der Verschlüsselung bekannt; die Nachricht oder die Daten sind mit einen ge-
heimen Schlüssel verschlüsselt. Nur wenn der geheime Schlüssel bekannt ist, kann
die Nachricht entschlüsselt werden. Die Sicherheit eines modernen Kryptographischen
Systems basiert somit nicht auf der Geheimhaltung des gewählten Verfahrens.
Nachdem geheime kryptographische Verfahren nicht von unabhängigen Fachleuten ge-
testet werden können, und somit z.B. Hintertüren enthalten könnten, ist die Geheimhal-
tung sogar hinderlich für die Sicherheit des Verfahrens.

IT-Sicherheit 14 Übungsblatt 2