Lösungen zu Grundlagen der Kryptologie

Lo
¨sungen zu
Grundlagen der
Kryptologie
SS 2008
Hochschule Konstanz
Dr.-Ing. Harald Vater
Giesecke & Devrient GmbH
Prinzregentenstraße 159
D-81677 Mu¨nchen
Tel.: +49 89 4119-1989
E-Mail: [email protected]
L¨
osungen 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 zuru
¨ckgeschoben, ergibt F R E U N D E
1.2
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
Es werden soviele Zeichen ben¨otigt, um eine Sinnhaftigkeit bzw. Sinnlosigkeit eines Plaintextes (nach Ausprobieren aller Schlu
¨ssel) erkennen zu
ko¨nnen.
1.3
Es wird nur ein Ciphertextzeichen und das zugeh¨orige Plaintextzeichen
ben¨otigt. Die zyklische Verschiebung zwischen beiden Zeichen ist der C¨asarSchlu
¨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 2 3 1 2 3 1 2 3 1 2
Der sich wiederholende Schlu
¨ssel l¨aßt eine Vigen`ere-Chiffre mit dem
Schlu
¨sselwort A B C vermuten.
1.5
Man l¨aßt den Buchstaben A verschlu
¨sseln, bekommt das zugeh¨orige
Ciphertextzeichen, dann B , usw. bis Z . Hiermit kann dann die komplette Verschlu
¨sselungstabelle aufgestellt werden.
Notwendig: 26 Plaintextbuchstaben bei Alphabet mit 26 Zeichen (genaugenommen nur 25, denn der 26te Buchstabe ist dann der der u
¨brig bleibt).
1.6
Genau soviele Plain / Ciphertext-Zeichen, wie das Schlu
¨sselwort lang ist
(mu
¨ssen aber aufeinanderfolgende Plain / Ciphertext-Zeichen sein).
2
1.7
Plaintext:
K R Y P T O L O G I E
Schlu
¨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¨oglich, daß der Informationsgehalt (die
Entropie) des Plaintextes kleiner oder gleich dem des Schlu
¨ssels ist.
M¨ogliches Verfahren: Kompression des Plaintextes auf maximal 1 kByte,
dann One-Time-Pad Verschlu
¨sselung.
1.10
Plaintext:
K R Y P T O L O G I E
Schlu
¨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 Schlu
¨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¨onnen fu
¨r einen Angriff ausgenutzt werden.
3
L¨
osungen zu Kapitel 2
2.1
Ja, gleicher Startwert und Schlu
¨ssel bedeutet gleiche Pseudozufallsfolge Z .
C1 = P1 +f Z
C2 = P2 +f Z
(Pi : Plaintext, Ci : Ciphertext)
Der Angreifer muß nur 2 Ciphertexte verEXORen und erh¨alt die verEXORten Plaintexte:
C1 +f C2
Beispiel:
=
P1 +f Z
f P +f Z
2
+
=
P1 :
C1 :
P2 :
C2 :
P1 +f P2
C1 +f C2 :
2.2
Es mu
¨ssen 2 Listen mit je 256 Eintr¨agen zu 8 Byte angelegt werden.
2 · 256 · 8 Byte = 260 Byte = 230 GByte = 1, 07 Mrd. GByte
2.3
Eine Woche hat 7 · 24 · 60 · 60 = 604 800 sec.
Ein DES-Chip schafft somit 6, 048 · 1011 Verschlu
¨sselungen pro Woche.
Insgesamt sind 256 = 7, 206 · 1016 Verschlu
¨sselungen notwendig.
Um dies in einer Woche zu schaffen, ben¨otigt man
DES-Chips. Diese kosten 595 715 DM.
4
7,206·1016
6,048·1011
= 119 143
2.4
Lange 000...0 Folgen zu Beginn des Plaintextes wu
¨rden einen periodischen
Ciphertext mit
DESk (ICV ) || ICV || DESk (ICV ) || ICV || . . .
C0 = DESk (ICV )
³
C1 = DESk DESk (ICV )
´
³
liefern, denn:
= DESk 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¨alligen Ciphertext.
Deswegen wu
¨rde man gro¨ßere schwarze Bereiche (000...0 Folgen) des
Originalbildes durch regelm¨aßige Muster auch im verschlu
¨sselten Bild
wiedererkennen.
Beispiel:
Originalbild:
Bild verschlu
¨sselt mit
DES im CBC-Mode und
schwachem Schlu
¨ssel:
Bild verschlu
¨sselt mit
DES im CBC-Mode und
normalem Schlu
¨ssel:
2.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.)
1 Bit im Plaintext falsch
OFB-Mode
d.) CFB-Mode
1 Bit im zugeh¨origen m-Bit Plaintextblock falsch und
mehrere darauffolgende m-Bit Plaintextbl¨ocke falsch.
5
2.6
2.7
a.) 70 Byte mu
¨ssen um 2 Byte gepaddet werden
⇒
72 Byte
b.) 80 Byte mu
¨ssen um 8 (!) Byte gepaddet werden
⇒
88 Byte
a.) Nein, u
¨bliches Verfahren
b.) Ja, gleicher Schlu
¨ssel und gleicher ICV bedeuten gleiche Pseudozufallsfolge, siehe 2.1
2.8
2.9
ECB-Mode:
Blockchiffre, jeder Block wird mit der gleichen Operation
verschlu
¨sselt.
CBC-Mode:
Stromchiffre, Verschlu
¨sselungsoperation abh¨angig von vorangegangenen Daten.
OFB-Mode:
Additive Stromchiffre, Pseudozufallsfolge wird EXORverknu
¨pft (modulo 2 addiert)
CFB-Mode:
Additive Stromchiffre, Pseudozufallsfolge wird EXORverknu
¨pft (modulo 2 addiert)
Dieses Verfahren stellt ein Sicherheitsrisiko dar. Der MAC ist grunds¨atzlich
einer Known-Plaintext-Attack ausgesetzt, womit sich der Schlu
¨ssel durch
Exhaustive Key Search finden la¨ßt (einfacher DES). Hat der Angreifer den
Schlu
¨ssel gefunden, kennt er damit auch die linke H¨alfte des Triple-DES
Verschlu
¨sselungsschlu
¨ssels. Damit ist die Sicherheit der Datenverschlu
¨sselung nur noch die einer einfachen DES-Verschlu
¨sselung.
Der Kunde sollte fu
¨r den MAC auf jeden Fall einen separaten Schlu
¨ssel
verwenden.
2.10
Nein, bei der MAC-Berechnung darf es nicht m¨oglich sein (mit realistischem
Aufwand), zu manipulierten Daten den zugeh¨origen MAC zu finden. Bei
Padding mit '00'-Bytes ha¨tten beispielsweise die Daten 'AB' 'CD' 'EF' und
'AB' 'CD' 'EF' '00' den gleichen MAC.
2.11
Nein, wu
¨rde ein Angreifer beispielsweise zwei 8-Byte Bl¨ocke vertauschen,
erga¨be dies die gleiche EXOR-Summe und damit den gleichen MAC.
Ein 8 Byte langer CRC w¨are 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).
6
2.12
Bekannt sind Pn , Cn und Cn−1 .
Pn−1
Pn
- +?
h
- +?
h
Diese h¨angen folgendermaßen zusammen:
K-
DESK ( Pn +f Cn−1 ) = Cn
Nun kann der Angreifer alle m¨ogli-
?
K-
DES
•
?
DES
?
?
Cn−1
che K in diese Gleichung einsetzen,
Cn
bis sie mit Gleichheit erfu
¨llt ist.
2.13
Nein, (lineare) Schieberegisterschaltungen liefern vorhersagbare Zufallszahlen. Mit einer Known-Plaintext-Attack kann ein Stu
¨ck Pseudozufallsfolge ermittelt werden.
Alle folgenden Pseudozufallszahlen ließen sich hieraus berechnen.
2.14
Zwei aufeinanderfolgende Zufallszahlenbl¨ocke sind ausreichend.
Zi = DESk ( IV + i )
Zi+1 = DESk ( IV + i + 1 )
= DES−1
k ( Zi )
=⇒
IV + i
=⇒
IV + i + 1 = DES−1
k ( Zi+1 )
nach IV + i aufgel¨ost und gleichgesetzt, ergibt:
−1
DES−1
k ( Zi ) = DESk ( Zi+1 ) − 1
Diese Gleichung kann fu
¨r alle m¨oglichen k u
¨berpru
¨ft werden.
2.15
G = 'A1' 'A2' 'A3' 'A4'
Z = '37' 'F2' 'AB' '4D'
Teilgeheimnisse:
Rekonstruktion:
⇒
T1 = Z
= '37' 'F2' 'AB' '4D'
⇒
T2 = G +f Z
= '96' '50' '08' 'E9'
⇒
G = T1 +f T2
= 'A1' 'A2' 'A3' 'A4'
7
L¨
osungen zu Kapitel 3
3.1
a.) Bei Verwendung symmetrischer Verfahren mu
¨ßten
³ ´
n
2
=
n·(n−1)
2
=
500 · 499
2
= 124 750
Schlu
¨ssel erzeugt werden.
b.) Bei Verwendung von Public-Key Verfahren mu
¨ßten nur 500 Schlu
¨ssel
(Paare) erzeugt werden.
3.2
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 :
d.)
7/9
mod 11
=
2
Probe : 2 · 9 mod 11 = 7
e.)
79
mod 11
=
8
Probe : 8 · 7 mod 11 = 1
8 mod 11 = 63 mod 11 = 7
9
9
(Fermat : 7 10 mod 11 = 1
3.3
⇒
a.)
13100 mod 101
=
b.)
21305 mod 101
= 25 mod 101 = 32
c.)
2199 mod 101
=
1
1
2
(Fermat)
· 2200 mod 101 =
=
3.4
d.)
47180 mod 77
=
e.)
2123 mod 77
=
1:
2:
3:
4:
5:
6:
Ordnung
Ordnung
Ordnung
Ordnung
Ordnung
Ordnung
1
3
6
3
6
2
7 9 · 7 mod 11 = 1)
1
1
2
102
2
mod 101
mod 101 = 51
(Euler) Φ(77) = (7−1)·(11−1) = 60
23 mod 77 = 8
(primitives Element)
(primitives Element)
3.5
Primitive Elemente aus GF(11): 2, 6, 7 und 8 , Suche durch Ausprobieren.
3.6
Die Ordnungen mu
¨ssen Teiler von p−1 = 100 sein. Folgende Ordnungen
treten auf (alle Teiler von 100):
1, 2, 4, 5, 10, 20, 25, 50, 100.
8
3.7
Der geheime Exponent d ist 1024 Bit lang, da d max. den Wert Φ(n)−1
annehmen kann (wegen d =
3.8
1
e
mod Φ(n)) und Φ(n) genauso lang ist wie n.
Public Key:
1024 Bit Modulus +
Secret Key:
1024 Bit Modulus + 1024 Bit Exponent = 2048 Bit
n = 3 · 11 = 33
17 Bit Exponent = 1041 Bit
Φ(n) = (3−1)·(11−1) = 20
d = 1 mod Φ(n) = 1 mod 20 = 21 mod 20 = 7
e
3
3
Schlu
¨sselpaar:
Public Key:
n = 33 , e = 3
Secret Key:
(n = 33), d = 7
Verschlu
¨sselung: y = 273 mod 33 = 19 683 mod 33 = 15
⇒ Ciphertext: y = 15
Entschlu
¨sselung: x = 157 mod 33 = 170 859 375 mod 33 = 27
⇒ Plaintext: x = 27
3.9
n = p·q = 5·7 = 35
Schlu
¨sselpaar:
Public Key:
n = 35
Secret Key:
p = 5, q = 7
Verschlu
¨sselung: y = 162 mod 35 = 256 mod 35 = 11
⇒ Ciphertext: y = 11
√
Entschlu
¨sselung: x = 11 mod 35 = 9, 16, 19 oder 26
⇒ Plaintext: x = 16
(daß es diese Wurzel ist, muß aus der Struktur des
Plaintextes hervorgehen)
3.10
¨
Offentliche
Schlu
¨ssel:
yA = 36 mod 17 = 15
yB = 37 mod 17 = 11
yC = 312 mod 17 = 4
gemeinsame symmetrische Schlu
¨ssel:
ZAB = 157 mod 17 = 116 mod 17 = 8
ZBC = 47 mod 17 = 1112 mod 17 = 13
ZAC = 46 mod 17 = 1512 mod 17 = 16
3.11
Eine digitale Signatur kann nur ein Teilnehmer berechnen (n¨amlich der
Besitzer des Secret Keys). Einen gu
¨ltigen MAC k¨onnen mindestens 2 Teilnehmer berechnen (n¨amlich beide Kommunikationspartner).
Somit leistet MAC nur Datenauthentisierung, w¨ahrend digitale Signaturen
sowohl Daten- als auch Benutzerauthentisierung gewa¨hrleisten.
9
3.12
Mit einer Hash-L¨ange von n Bit ergibt das Birthday-Paradoxon:
q
80
2
=
n = 2·
3.13
2·ln(2) · 2
³
n
2
1
log2 ( 1,177
)
≈ 1, 177 · 2
+ 80
´
n
2
≈ 159, 53 [Bit]
Nein, wenn als Schlu
¨ssel der Hash-Input verwendet werden wu
¨rde, w¨are bei
dem ersten Block der Schlu
¨ssel bekannt (der IV der Hashfunktion), und
man k¨onnte mit der Decrypt-Funktion des Chiffrieralgorithmus einfach die
Einwegfunktionalit¨at u
¨berwinden.
3.14
Das Rabin-Verfahren sollte u
¨berall dort eingesetzt werden, wo fu
¨r die
Signaturerzeugung ausreichend Rechenleistung in einer sicheren Umgebung
zur Verfu
¨gung steht (PC, Koprozessor), und fu
¨r die Signaturu
¨berpru
¨fung
nur sehr begrenzte Rechenleistung verfu
¨gbar ist (z.B. Chipkarte ohne Koprozessor).
3.15
Signaturerzeugung:
Signaturu
¨berpru
¨fung:
3.16
p : 1024 Bit
q:
160 Bit
α : 1024 Bit
x:
160 Bit
=⇒ insgesamt 2368 Bit
p : 1024 Bit
q:
160 Bit
α : 1024 Bit
y : 1024 Bit
=⇒ insgesamt 3232 Bit
Ja, das kann passieren. Mit ( s = H + x·r mod q ) wird s = 0 , falls
k
H = −x · r mod q .
Das ist sicherheitsrelevant, da sich ein Angreifer in diesem Fall den Secret
Key ausrechnen kann: x = − H mod q .
r
Wahrscheinlichkeit (H kann als zufa¨llig angenommen werden): 2−160 .
3.17
32 = 3 · 3 = 9
34 = 9 · 9 = 13
38 = 13 · 13 = 16
⇒
mod 17
mod 17
mod 17
310 mod 17 = 32 ·38 mod 17 = 9·16 mod 17 = 8
10
3.18
Beim DSA besteht der Exponent aus 160 Bit, davon sind durchschnittlich 80 Bit eine '1'. Somit mu
¨ssen 159 Quadrierungen und durchschnittlich
79 Multiplikationen berechnet werden.
3.19
ohne CRT:
mit CRT:
y = 127 mod 35 = 35 831 808 mod 35 = 33
mod 5 :
xp = 12 mod 5 = 2 ,
dp = 7 mod (5−1) = 3
→ yp = 23 mod 5 = 3
mod 7 :
xq = 12 mod 7 = 5 ,
dq = 7 mod (7−1) = 1
→ yq = 51 mod 7 = 5
Ru
¨cktransf.:
y=
³
( 17
mod 5)·7·yp +
( 51
´
mod 7)·5·yq mod 35
= (3·7·3 + 3·5·5)mod 35
= 138 mod 35 = 33
3.20
a.) RSA: Faktor 4
b.) DSA: keine Anwendung der CRT mo¨glich,
da modulo einer Primzahl gerechnet wird.
3.21
Bei n-stelligen Bina¨rzahlen ist durchschnittlich jede ( n·ln(2)) -te Zahl eine
Primzahl. Da gerade Zahlen keine Primzahlen sind (außer der 2), ist durchschnittlich jede ( 12 ·n·ln(2) )-te ungerade Zahl eine Primzahl.
⇒
3.22
1
·n·ln(2)
2
Wahl z.B. a = 2 :
= 640·ln(2) ≈ 443, 6 Versuche notwendig
220 mod 21 = 1 048 576 mod 21 = 4 6= 1
⇒ 21 ist keine Primzahl.
3.23
Wahl z.B. Z = 2 :
Probe:
3.24
951
952
953
954
955
mod
mod
mod
mod
mod
α = Z
101
101
101
101
101
=
=
=
=
=
p−1
q
mod p = 220 mod 101 = 95
95
36
87
84
1
Aus Zusammenstellung der ”Current Codebreaking Times”:
Modulusl¨ange fu
¨r Elliptische-Kurven Verfahren: ca. 160 Bit
Rechenaufwand, um diese Systeme zu brechen:
ca. 1011 MIPS-Years
Rechenzeit bei 1010 MIPS :
ca. 10 Jahre
11