Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
Sicherheit in Rechnernetzen: - Professur Datenschutz und ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
422<br />
A. Pfitzmann: Datensicherheit <strong>und</strong> Kryptographie; Lösungen, TU Dresden, WS2000/2001, 15.10.2000, 15:52 Uhr<br />
421<br />
A. Pfitzmann: Datensicherheit <strong>und</strong> Kryptographie; Lösungen, TU Dresden, WS2000/2001, 15.10.2000, 15:52 Uhr<br />
entsprechende Schlüsseltextblock erfragt. Damit kann dann im Mittel nach 254 Versuchen, also<br />
halb so vielen DES-Verschlüsselungen, der Schlüssel ermittelt werden.<br />
Formal h<strong>in</strong>geschrieben:<br />
Gegeben sei das Klartextblock-Schlüsseltextblock-Paar (x, DES(k, x)).<br />
l) Vollständiges Brechen von RSA bedeutet, zu gegebenem n <strong>und</strong> c das zugehörige d bestimmen<br />
zu können. Im <strong>in</strong> der Aufgabenstellung zitierten Beweis wird nun gezeigt: Mit Kenntnis von n,<br />
c <strong>und</strong> d kann n faktorisiert werden – also ist vollständiges Brechen genauso schwer wie Faktorisieren.<br />
Leider schließt dieser Beweis nicht e<strong>in</strong>mal aus, daß universelles Brechen, d.h. das<br />
F<strong>in</strong>den e<strong>in</strong>es zum Schlüssel äquivalenten Verfahrens gel<strong>in</strong>gt, ohne n faktorisieren zu können.<br />
Gebildet wird x . Erfragt wird DES(k, x) .<br />
Nach der Komplementaritätseigenschaft gilt: DES(k, x) = DES(k, x) . Durch Komplemen-<br />
tieren wird DES(k, x) berechnet. Damit liegt für den Angriff die Verschlüsselung von x<br />
sowohl unter dem Schlüssel k wie auch unter dem komplementären Schlüssel k vor.<br />
Um den Schlüssel k zu ermitteln, werden solange Schlüssel k' durchprobiert, d.h.<br />
DES(k', x) berechnet, bis dies entweder gleich DES(k, x) oder gleich DES(k, x) ist.<br />
Im ersten Fall gilt k = k', im zweiten Fall gilt k = k' .<br />
Wird beim Durchprobieren des Schlüsselraumes darauf geachtet, daß jeder der 256 möglichen<br />
Werte von k' <strong>und</strong> k' höchstens e<strong>in</strong>mal angenommen wird, dann endet die Suche<br />
nach spätestens 255 , im Mittel nach 254 Schritten, wobei jeder Schritt aus e<strong>in</strong>er DES-<br />
Verschlüsselung <strong>und</strong> zwei Vergleichen des entstehenden Schlüsseltextes mit zwei vorhandenen<br />
Schlüsseltexten besteht. Da e<strong>in</strong> Vergleich wesentlich weniger aufwendig als<br />
e<strong>in</strong>e DES-Verschlüsselung ist, ist der hier beschriebene gewählter Klartext-Schlüsseltext-Angriff<br />
nur halb so aufwendig wie der vorher beschriebene Klartext-Schlüsseltext-<br />
Angriff.<br />
Auch hier muß ggf. noch an weiteren Klartext-Schlüsseltext-Paaren geprüft werden, ob<br />
3-17 DES<br />
a) Verschlüsseln: K1 = 011, K2 = 010.<br />
L0 = 000, R0 = 101.<br />
L1 = R0 = 101, R1 = L0 ⊕ f(R0, K1) = 000 ⊕ (R0•K1 mod 8) = 101•011 mod 8<br />
= 5•3 mod 8 = 111.<br />
L2 = R1 = 111, R2 = L1 ⊕ f(R1 , K2 ) = 101 ⊕ (111•010 mod 8) = 101 ⊕ (7•2 mod 8)<br />
= 101 ⊕ 110 = 011.<br />
Vertauschen der Hälften ergibt den Schlüsseltext 011111.<br />
Entschlüsseln: Verwendet werden die Bezeichner <strong>in</strong> der rechten Hälfte des Bildes aus §3.7.3,<br />
vgl. die Erklärung dort.<br />
R2 = 011, L2 = 111 s<strong>in</strong>d gegeben.<br />
R1 = L2 = 111, L1 = R2 ⊕ f(R1, K2) = 011 ⊕ (111•010 mod 8) = 011 ⊕ (7•2 mod 8)<br />
= 011 ⊕ 110 = 101.<br />
R0 = L1 = 101, L0 = R1 ⊕ f(R0 , K1 ) = 111 ⊕ (R0•K1 mod 8) = 111 ⊕ (101•011 mod 8)<br />
= 111 ⊕ (5•3 mod 8) = 111 ⊕ 111 = 000.<br />
Wegen der <strong>in</strong> der Bezeichnerwahl implizit enthaltenen Vertauschung von l<strong>in</strong>ks <strong>und</strong> rechts<br />
brauchen die beiden Hälften nicht explizit vertauscht zu werden. Also lautet der Klartext:<br />
000101, was mit dem ursprünglich verschlüsselten übere<strong>in</strong>stimmt.<br />
der gef<strong>und</strong>ene Schlüssel tatsächlich der richtige ist.<br />
f) Für jedes der 64 Schlüsseltextbits gibt es e<strong>in</strong>e l<strong>in</strong>eare Gleichung, <strong>in</strong> die entsprechend den<br />
Permutationen entsprechende Klartextbits <strong>und</strong> entsprechend den Permutationen <strong>und</strong> der<br />
Teilschlüsselerzeugung entsprechende Schlüsselbits e<strong>in</strong>gehen – wobei die Gleichungen<br />
konstante Koeffizienten haben, denn die Permutationen <strong>und</strong> auch die Teilschlüsselerzeugung<br />
s<strong>in</strong>d bekannt <strong>und</strong> fest. Da Schlüsseltext <strong>und</strong> Klartext bekannt s<strong>in</strong>d, haben wir 64 l<strong>in</strong>eare<br />
Gleichungen mit 56 Unbekannten. Die löst jedes Softwarepaket zur Lösung von Gleichungen<br />
spielend. Das Ergebnis ist der gesuchte DES-Schlüssel.<br />
b) Man legt explizit Tabellen an, so daß man jedes Ergebnis sofort auslesen kann. Möglichst faßt<br />
man noch mehrere S-Boxen zu e<strong>in</strong>er großen zusammen (bei DES wenigstens jeweils 2: Array<br />
von 212 E<strong>in</strong>trägen).<br />
c) Der Witz an schnellen Softwareimplementierungen solcher Systeme ist, daß es auch gel<strong>in</strong>gt,<br />
die Permutationen im wesentlichen zu tabellieren, die sonst viele Bitoperationen benötigen<br />
würden. E<strong>in</strong>e Tabelle mit 232 E<strong>in</strong>trägen wäre aber zu groß. Als Beispiel zeigen wir, wie man<br />
mit 4 Tabellen von 28 E<strong>in</strong>trägen auskommt:<br />
Die E<strong>in</strong>träge werden 32 bit lang, <strong>und</strong> die i-te Tabelle beschreibt, woh<strong>in</strong> die i-ten 8 Bits<br />
permutiert werden.<br />
Ob die Blocklänge 64 oder z.B. 128 Bit ist, ob der Schlüssel 56 oder z.B. 256 Bit lang ist,<br />
darauf kommt es offensichtlich nicht an. Der Algorithmus bricht offensichtlich jede Feistelchiffre<br />
mit bekannten festen Permutationen. Vermutlich läßt er sich auf beliebige l<strong>in</strong>eare<br />
Blockchiffren übertragen.<br />
Beispiel: 2-te Tabelle, also Bits 9 bis 16. Sei W(9), …, W(16) = 28,13,1,5,30,14,2,19.<br />
In jedem E<strong>in</strong>trag steht an Position 28 Bit 9, an Position 13 Bit 10 , … , an Position 19 Bit<br />
16, <strong>und</strong> alle anderen Bits s<strong>in</strong>d immer 0.<br />
3-18 Betriebsarten<br />
a) Man hat ke<strong>in</strong>erlei Red<strong>und</strong>anz. Genauer: Jeder Schlüsseltext läßt sich zu irgende<strong>in</strong>em Klartext<br />
entschlüsseln. Wenn man dann wieder verschlüsselt, ergibt sich natürlich genau wieder dieser<br />
Schlüsseltext <strong>und</strong> <strong>in</strong>sbesondere se<strong>in</strong> letzter Block. Wenn die Nachrichten also ke<strong>in</strong>e <strong>in</strong>terne<br />
Red<strong>und</strong>anz enthalten, etwa bei Files von Zahlen, kann der Angreifer beliebige Schlüsseltexte<br />
schicken.<br />
b) (Dieses Schema ist etwas besser: Bei e<strong>in</strong>em x-beliebigen Schlüsseltext wird i.allg. der sich<br />
ergebende letzte Klartextblock nicht aus lauter Nullen bestehen, also wird der Angriff erkannt.<br />
Aber:)<br />
Wenn der Schlüsseltext aus m<strong>in</strong>destens drei Blöcken besteht, kann der Angreifer alle außer<br />
den letzten zweien beliebig ändern. Da die Betriebsart CBC sich <strong>in</strong>nerhalb von 2 Blöcken<br />
Das Gesamtergebnis der Permutation erhält man, <strong>in</strong>dem man die i-te Tabelle mit den i-ten 8<br />
Bits der E<strong>in</strong>gabe <strong>in</strong>diziert <strong>und</strong> das Oder oder XOR der 4 Ergebnisse bildet.<br />
d) Für e<strong>in</strong> Klartextblock-Schlüsseltextblock-Paar werden nache<strong>in</strong>ander verschiedene Schlüssel<br />
probiert, bis e<strong>in</strong>er paßt. Dies ist im Mittel nach 255 Versuchen der Fall. Danach wird probiert,<br />
ob dieser Schlüssel auch für die anderen Klartextblock-Schlüsseltextblock-Paare paßt. Dies ist<br />
mit sehr großer Wahrsche<strong>in</strong>lichkeit der Fall. Der mittlere Aufwand ist also 255 DES-<br />
Verschlüsselungen.<br />
e) Wie <strong>in</strong> §3.7.6 beschrieben, wird zu e<strong>in</strong>em der gegebenen Klartextblock-Schlüsseltextblock-<br />
Paare e<strong>in</strong> komplementäres gewählt, d.h. der komplementäre Klartextblock gebildet <strong>und</strong> der