ClevAlg 2017 Cäsar-Verschlüsselung Clevere Algorithmen programmieren Dennis Komm, Jakub Závodný, Tobias Kohn 18. Oktober 2017
Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 1 / 11
Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 1 / 11
Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam, qui ipsorum lingua Celtae, nostra Galli appellantur. Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 1 / 11
Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam, qui ipsorum lingua Celtae, nostra Galli appellantur. Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 1 / 11
Unsicherer Kanal Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 1 / 11
Cäsar-Verschlüsselung
Symmetrische Verschlüsselung Situation Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 2 / 11
Symmetrische Verschlüsselung Situation Zwei Parteien A und B wollen über unsicheren Kanal sicher kommunizieren Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 2 / 11
Symmetrische Verschlüsselung Situation Zwei Parteien A und B wollen über unsicheren Kanal sicher kommunizieren Gemeinsamer Schlüssel k Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 2 / 11
Symmetrische Verschlüsselung Situation Zwei Parteien A und B wollen über unsicheren Kanal sicher kommunizieren Gemeinsamer Schlüssel k A verschlüsselt Nachricht mit k Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 2 / 11
Symmetrische Verschlüsselung Situation Zwei Parteien A und B wollen über unsicheren Kanal sicher kommunizieren Gemeinsamer Schlüssel k A verschlüsselt Nachricht mit k A sendet verschlüsselte Nachricht an B Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 2 / 11
Symmetrische Verschlüsselung Situation Zwei Parteien A und B wollen über unsicheren Kanal sicher kommunizieren Gemeinsamer Schlüssel k A verschlüsselt Nachricht mit k A sendet verschlüsselte Nachricht an B B entschlüsselt Nachricht mit k Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 2 / 11
Symmetrische Verschlüsselung Situation Zwei Parteien A und B wollen über unsicheren Kanal sicher kommunizieren Gemeinsamer Schlüssel k A verschlüsselt Nachricht mit k A sendet verschlüsselte Nachricht an B B entschlüsselt Nachricht mit k A heisst Sender Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 2 / 11
Symmetrische Verschlüsselung Situation Zwei Parteien A und B wollen über unsicheren Kanal sicher kommunizieren Gemeinsamer Schlüssel k A verschlüsselt Nachricht mit k A sendet verschlüsselte Nachricht an B B entschlüsselt Nachricht mit k A heisst Sender B heisst Empfänger Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 2 / 11
Symmetrische Verschlüsselung Situation Zwei Parteien A und B wollen über unsicheren Kanal sicher kommunizieren Gemeinsamer Schlüssel k A verschlüsselt Nachricht mit k A sendet verschlüsselte Nachricht an B B entschlüsselt Nachricht mit k A heisst Sender B heisst Empfänger Symmetrisch: Gleicher Schlüssel für Ver- und Entschlüsselung Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 2 / 11
Symmetrische Verschlüsselung Sender Empfänger Klartext Klartext Chiffrierung Dechiffrierung Geheimtext Übertragungsmedium (Bote, Internet,... ) Geheimtext Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 3 / 11
Das ASCII-Alphabet Buchstaben als Zahlen 0 21 22 43 44 96 66 87 88 109 110 127 Dez Zeichen Dez Zeichen Dez Zeichen Dez Zeichen Dez Zeichen Dez Zeichen 0 NUL 22 SYN 44, 66 B 88 X 110 n 1 SOH 23 ETB 45-67 C 89 Y 111 o 2 STX 24 CAN 46. 68 D 90 Z 112 p 3 ETX 25 EM 47 / 69 E 91 [ 113 q 4 EOT 26 SUB 48 0 70 F 92 \ 114 r 5 ENQ 27 ESC 49 1 71 G 93 ] 115 s 6 ACK 28 FS 50 2 72 H 94 ˆ 116 t 7 BEL 29 GS 51 3 73 I 95 _ 117 u 8 BS 30 RS 52 4 74 J 96 118 v 9 HT 31 US 53 5 75 K 97 a 119 w 10 LF 32 SP 54 6 76 L 98 b 120 x 11 VT 33! 55 7 77 M 99 c 121 y 12 FF 34 56 8 78 N 100 d 122 z 13 CR 35 # 57 9 79 O 101 e 123 { 14 SO 36 $ 58 : 80 P 102 f 124 15 SI 37 % 59 ; 81 Q 103 g 125 } 16 DLE 38 & 60 < 82 R 104 h 126 ~ 17 DC1 39 61 = 83 S 105 i 127 DEL 18 DC2 40 ( 62 > 84 T 106 j 19 DC3 41 ) 63? 85 U 107 k 20 DC4 42 * 64 @ 86 V 108 l 21 NAK 43 + 65 A 87 W 109 m Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 4 / 11
Cäsar-Verschlüsselung Situation Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 5 / 11
Cäsar-Verschlüsselung Situation Zwei Parteien A und B wollen über unsicheren Kanal mittels Cäsar-Verschlüsselung sicher kommunizieren Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 5 / 11
Cäsar-Verschlüsselung Situation Zwei Parteien A und B wollen über unsicheren Kanal mittels Cäsar-Verschlüsselung sicher kommunizieren Gemeinsamer Schlüssel k als Zahl zwischen 1 und 25 Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 5 / 11
Cäsar-Verschlüsselung Situation Zwei Parteien A und B wollen über unsicheren Kanal mittels Cäsar-Verschlüsselung sicher kommunizieren Gemeinsamer Schlüssel k als Zahl zwischen 1 und 25 A verschlüsselt Nachricht, indem k zu jedem Buchstaben addiert wird Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 5 / 11
Cäsar-Verschlüsselung Situation Zwei Parteien A und B wollen über unsicheren Kanal mittels Cäsar-Verschlüsselung sicher kommunizieren Gemeinsamer Schlüssel k als Zahl zwischen 1 und 25 A verschlüsselt Nachricht, indem k zu jedem Buchstaben addiert wird A sendet verschlüsselte Nachricht an B Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 5 / 11
Cäsar-Verschlüsselung Situation Zwei Parteien A und B wollen über unsicheren Kanal mittels Cäsar-Verschlüsselung sicher kommunizieren Gemeinsamer Schlüssel k als Zahl zwischen 1 und 25 A verschlüsselt Nachricht, indem k zu jedem Buchstaben addiert wird A sendet verschlüsselte Nachricht an B B entschlüsselt Nachricht, indem k von jedem Buchstaben abgezogen wird Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 5 / 11
Cäsar-Verschlüsselung Verschiebe Buchstaben um festen Wert. Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 6 / 11
Cäsar-Verschlüsselung Verschiebe Buchstaben um festen Wert. Beispiel A B C D E F G H I J K L M W X Y Z A B C D E F G H I N O P Q R S T U V W X Y Z J K L M N O P Q R S T U V Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 6 / 11
Cäsar-Verschlüsselung Verschiebe Buchstaben um festen Wert. Beispiel A B C D E F G H I J K L M W X Y Z A B C D E F G H I N O P Q R S T U V W X Y Z J K L M N O P Q R S T U V Klartext: HELLO WORLD Verschlüsselter Text: DAHHK SKNHZ Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 6 / 11
Cäsar-Verschlüsselung 1. Eingegebener Buchstabe ist ASCII-Zeichen von A bis Z A B... W X Y Z 65 66... 87 88 89 90 Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 7 / 11
Cäsar-Verschlüsselung 1. Eingegebener Buchstabe ist ASCII-Zeichen von A bis Z A B... W X Y Z 65 66... 87 88 89 90 2. Ziehe 65 ab, dann ist das Resultat zwischen 0 und 25 A B... W X Y Z 0 1... 22 23 24 25 Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 7 / 11
Cäsar-Verschlüsselung 1. Eingegebener Buchstabe ist ASCII-Zeichen von A bis Z A B... W X Y Z 65 66... 87 88 89 90 2. Ziehe 65 ab, dann ist das Resultat zwischen 0 und 25 A B... W X Y Z 0 1... 22 23 24 25 3. Addiere nun Schlüssel (zum Beispiel 3) und rechne modulo 26 A B... W X Y Z 3 4... 25 0 1 2 Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 7 / 11
Cäsar-Verschlüsselung 1. Eingegebener Buchstabe ist ASCII-Zeichen von A bis Z A B... W X Y Z 65 66... 87 88 89 90 2. Ziehe 65 ab, dann ist das Resultat zwischen 0 und 25 A B... W X Y Z 0 1... 22 23 24 25 3. Addiere nun Schlüssel (zum Beispiel 3) und rechne modulo 26 A B... W X Y Z 3 4... 25 0 1 2 4. Addiere nun wieder 65 zum Ergebnis A B... W X Y Z 68 69... 90 65 66 67 Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 7 / 11
Cäsar-Verschlüsselung Sicherheit
Cäsar-Verschlüsselung Problem Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 8 / 11
Cäsar-Verschlüsselung Problem Es gibt 25 mögliche Schlüssel Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 8 / 11
Cäsar-Verschlüsselung Problem Es gibt 25 mögliche Schlüssel Alle zu probieren ist kaum Aufwand Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 8 / 11
Cäsar-Verschlüsselung Problem Es gibt 25 mögliche Schlüssel Alle zu probieren ist kaum Aufwand Auch, wenn ganze ASCII-Tabelle genutzt wird Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 8 / 11
Cäsar-Verschlüsselung Problem Es gibt 25 mögliche Schlüssel Alle zu probieren ist kaum Aufwand Auch, wenn ganze ASCII-Tabelle genutzt wird Idee Erhöhe Sicherheit der Verschlüsselung durch grössere Anzahl potentieller Schlüssel Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 8 / 11
Monoalphabetische Kryptosysteme
Monoalphabetische Kryptosysteme Bilde Buchstaben beliebig auf andere Buchstaben ab. Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 9 / 11
Monoalphabetische Kryptosysteme Bilde Buchstaben beliebig auf andere Buchstaben ab. Beispiel A B C D E F G H I J K L M P Z Q N H J V T A E C O L N O P Q R S T U V W X Y Z G X B R U I F M W D Y S K Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 9 / 11
Monoalphabetische Kryptosysteme Bilde Buchstaben beliebig auf andere Buchstaben ab. Beispiel A B C D E F G H I J K L M P Z Q N H J V T A E C O L N O P Q R S T U V W X Y Z G X B R U I F M W D Y S K Klartext: HELLO WORLD Verschlüsselter Text: THOOX DXUON Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 9 / 11
Monoalphabetische Kryptosysteme Anzahl Schlüssel Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 10 / 11
Monoalphabetische Kryptosysteme Anzahl Schlüssel A kann auf einen von 25 Buchstaben abgebildet werden Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 10 / 11
Monoalphabetische Kryptosysteme Anzahl Schlüssel A kann auf einen von 25 Buchstaben abgebildet werden Danach B auf einen der verbleibenden 24 Buchstaben Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 10 / 11
Monoalphabetische Kryptosysteme Anzahl Schlüssel A kann auf einen von 25 Buchstaben abgebildet werden Danach B auf einen der verbleibenden 24 Buchstaben Danach C auf einen der verbleibenden 23 Buchstaben Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 10 / 11
Monoalphabetische Kryptosysteme Anzahl Schlüssel A kann auf einen von 25 Buchstaben abgebildet werden Danach B auf einen der verbleibenden 24 Buchstaben Danach C auf einen der verbleibenden 23 Buchstaben Danach D auf einen der verbleibenden 22 Buchstaben Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 10 / 11
Monoalphabetische Kryptosysteme Anzahl Schlüssel A kann auf einen von 25 Buchstaben abgebildet werden Danach B auf einen der verbleibenden 24 Buchstaben Danach C auf einen der verbleibenden 23 Buchstaben Danach D auf einen der verbleibenden 22 Buchstaben... Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 10 / 11
Monoalphabetische Kryptosysteme Anzahl Schlüssel A kann auf einen von 25 Buchstaben abgebildet werden Danach B auf einen der verbleibenden 24 Buchstaben Danach C auf einen der verbleibenden 23 Buchstaben Danach D auf einen der verbleibenden 22 Buchstaben... Insgesamt 25 24 23... 3 2 ( 25 Fakultät ) Möglichkeiten Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 10 / 11
Monoalphabetische Kryptosysteme Anzahl Schlüssel A kann auf einen von 25 Buchstaben abgebildet werden Danach B auf einen der verbleibenden 24 Buchstaben Danach C auf einen der verbleibenden 23 Buchstaben Danach D auf einen der verbleibenden 22 Buchstaben... Insgesamt 25 24 23... 3 2 ( 25 Fakultät ) Möglichkeiten 15 500 000 000 000 000 000 000 000 Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 10 / 11
Monoalphabetische Kryptosysteme Anzahl Schlüssel A kann auf einen von 25 Buchstaben abgebildet werden Danach B auf einen der verbleibenden 24 Buchstaben Danach C auf einen der verbleibenden 23 Buchstaben Danach D auf einen der verbleibenden 22 Buchstaben... Insgesamt 25 24 23... 3 2 ( 25 Fakultät ) Möglichkeiten 15 500 000 000 000 000 000 000 000 Unmöglich alle durchzuprobieren Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 10 / 11
Monoalphabetische Kryptosysteme Anzahl Schlüssel A kann auf einen von 25 Buchstaben abgebildet werden Danach B auf einen der verbleibenden 24 Buchstaben Danach C auf einen der verbleibenden 23 Buchstaben Danach D auf einen der verbleibenden 22 Buchstaben... Insgesamt 25 24 23... 3 2 ( 25 Fakultät ) Möglichkeiten 15 500 000 000 000 000 000 000 000 Unmöglich alle durchzuprobieren Dennoch unsicher Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 10 / 11
Monoalphabetische Kryptosysteme Sicherheit
Problem Buchstabenhäufigkeiten Buchstabe Häufigkeit Buchstabe Häufigkeit Buchstabe Häufigkeit E 17,74 U 4,27 K 1,40 N 10,01 L 3,49 Z 1,10 I 7,60 C 3,26 V 0,64 R 6,98 M 2,75 P 0,64 S 6,88 G 2,69 J 0,23 A 6,43 O 2,39 Y 0,04 T 5,94 B 1,85 X 0,02 H 5,22 W 1,73 Q 0,01 D 5,12 F 1,56 Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 11 / 11
Problem Buchstabenhäufigkeiten Buchstabe Häufigkeit Buchstabe Häufigkeit Buchstabe Häufigkeit E 17,74 U 4,27 K 1,40 N 10,01 L 3,49 Z 1,10 I 7,60 C 3,26 V 0,64 R 6,98 M 2,75 P 0,64 S 6,88 G 2,69 J 0,23 A 6,43 O 2,39 Y 0,04 T 5,94 B 1,85 X 0,02 H 5,22 W 1,73 Q 0,01 D 5,12 F 1,56 Häufigster Buchstabe ist wahrscheinlich E im Klartext Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 11 / 11
Problem Buchstabenhäufigkeiten Buchstabe Häufigkeit Buchstabe Häufigkeit Buchstabe Häufigkeit E 17,74 U 4,27 K 1,40 N 10,01 L 3,49 Z 1,10 I 7,60 C 3,26 V 0,64 R 6,98 M 2,75 P 0,64 S 6,88 G 2,69 J 0,23 A 6,43 O 2,39 Y 0,04 T 5,94 B 1,85 X 0,02 H 5,22 W 1,73 Q 0,01 D 5,12 F 1,56 Häufigster Buchstabe ist wahrscheinlich E im Klartext Zweithäufigster Buchstabe ist wahrscheinlich N im Klartext Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 11 / 11
Problem Buchstabenhäufigkeiten Buchstabe Häufigkeit Buchstabe Häufigkeit Buchstabe Häufigkeit E 17,74 U 4,27 K 1,40 N 10,01 L 3,49 Z 1,10 I 7,60 C 3,26 V 0,64 R 6,98 M 2,75 P 0,64 S 6,88 G 2,69 J 0,23 A 6,43 O 2,39 Y 0,04 T 5,94 B 1,85 X 0,02 H 5,22 W 1,73 Q 0,01 D 5,12 F 1,56 Häufigster Buchstabe ist wahrscheinlich E im Klartext Zweithäufigster Buchstabe ist wahrscheinlich N im Klartext... Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn 18. Oktober 2017 11 / 11
Danke für die Aufmerksamkeit