IT-Sicherheitsmanagement Teil 7: Symmetrische Verschlüsselung

Ähnliche Dokumente
IT-Sicherheitsmanagement. Teil 12: Asymmetrische Verschlüsselung

Kryptographische Verfahren. zur Datenübertragung im Internet. Patrick Schmid, Martin Sommer, Elvis Corbo

Kryptographische Systeme (M, C, K, e, d) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln):

monoalphabetisch: Verschiebechiffren (Caesar), multiplikative Chiffren polyalphabetisch: Vigenère-Chiffre

Betriebsarten von Blockchiffren. ECB Electronic Code Book Mode. Padding. ECB Electronic Code Book Mode

Betriebsarten für Blockchiffren

Übungen zu. Grundlagen der Kryptologie SS Hochschule Konstanz. Dr.-Ing. Harald Vater. Giesecke & Devrient GmbH Prinzregentenstraße 159

Institut für Kryptographie und Sicherheit Jun.-Prof. Dr. D. Hofheinz. Stammvorlesung Sicherheit im Sommersemester 2013.

Kryptographische Systeme (M, C, K, E, D) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln):

IT-Sicherheitsmanagement Teil 6: Einführung in die Kryptographie

Klassische Verschlüsselungsverfahren

Kurze Einführung in kryptographische Grundlagen.

Übungen zur Vorlesung Systemsicherheit

Kapitel 9: Kryptographie: DES. Java SmartCards, Kap. 9 (1/19)

3 Betriebsarten bei Blockverschlüsselung

12 Kryptologie. ... immer wichtiger. Militär (Geheimhaltung) Telebanking, Elektronisches Geld E-Commerce

IT-Sicherheitsmanagement Teil 8: Einführung in die Kryptographie

Vorlesung IT-Sicherheit FH Frankfurt Sommersemester 2007

Grundlagen der Kryptographie

8. Von den Grundbausteinen zu sicheren Systemen

Stefan Lucks Krypto und Mediensicherheit (2009) 5: Blockchiffren. 5: Blockchiffren. (n bit) (n bit) VERschlüsseln ENTschlüsseln

Kapitel 1.6: Einführung in Kryptographie

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren

In beiden Fällen auf Datenauthentizität und -integrität extra achten.

Einführung in die moderne Kryptographie

Methoden der Kryptographie

Grundbegriffe der Kryptographie II Technisches Seminar SS 2012 Deniz Bilen

Grundlagen der Verschlüsselung und Authentifizierung (1): symmetrische Verschlüsselung und Authentifizierung

Strukturvergleich zwischen Klartext und Geheimtext verschlüsselter Dateien Bedeutung der Längenverhältnisse

RSA Verfahren. Kapitel 7 p. 103

IT-Sicherheit: Kryptographie. Asymmetrische Kryptographie

Beweisbar sichere Verschlüsselung

Symmetrische Verschlüsselung. Blockchiffren, DES, IDEA, Stromchiffren und andere Verfahren

Was heißt Kryptographie I? Understanding Cryptography Christof Paar und Jan Pelzl

Public-Key Verschlüsselung

Kryptographie Reine Mathematik in den Geheimdiensten

Seminar Kryptographie und Datensicherheit

Der Advanced Encryption Standard (AES)

Kapitel 4: Flusschiffren

KRYPTOLOGIE KRYPTOLOGIE

Kryptografische Algorithmen

BULLRUN, EDGEHILL & Co. Wie Geheimdienste Verschlüsselung brechen

Datenkommunikation Prof. Dr. Marke SS 2001 Seminar-Thema: Kryptographie

Benutzer- und Datensicherheit. Ralf Abramowitsch Vector Informatik GmbH

Kryptologische Methoden und Alternativen

Verschlüsselung. Kirchstraße 18 Steinfelderstraße Birkweiler Bad Bergzabern Fabian Simon Bfit09

Vorlesung Datensicherheit. Sommersemester 2010


Klassische Kryptographie

Wireless Security. IT Security Workshop Moritz Grauel Matthias Naber

Symmetrische Kryptoverfahren

Wiederholung Symmetrische Verschlüsselung klassische Verfahren: Substitutionschiffren Transpositionschiffren Vigenère-Chiffre One-Time-Pad moderne

Einführung Verschlüsselung Mag. Dr. Klaus Coufal

Kapitel 3: Schutzkonzepte und deren Umsetzung

Sommersemester 2002 Konzepte von Betriebssystem-Komponenten: Schwerpunkt Sicherheit (KVBK)

Crypto Cheat Sheet. Steckbrief: Kryptographie. Manu Carus.

SICHERE DATENHALTUNG IN DER CLOUD VIA HANDY. Tuba Yapinti Abschlussvortrag der Bachelorarbeit Betreuer: Prof. Reinhardt, Dr.

IT-Sicherheit - Sicherheit vernetzter Systeme -

Diffie-Hellman, ElGamal und DSS. Vortrag von David Gümbel am

VON. Kryptographie. 07. März Powerpoint-Präsentation

12 Kryptologie. hier: Geheimhaltung, Authentifizierung, Integriät (Echtheit).

11. Das RSA Verfahren und andere Verfahren

Informationssicherheit - Lösung Blatt 2

Parameterwahl für sichere zeitgemäße Verschlüsselung

Kryptologie und Kodierungstheorie

Algorithmische Anwendungen

Fakultät Informatik, Proseminar Technische Informationssysteme Sind Handyverbindungen abhörsicher?

Web of Trust, PGP, GnuPG

Verfügbarkeit (Schutz vor Verlust) Vertraulichkeit (Schutz vor unbefugtem Lesen) Authentizität (Schutz vor Veränderung, Fälschung)

Datenverschlüsselung - Einstieg

Exkurs Kryptographie

1. Praktikum zur IT-Sicherheit 1

Kapitel 3: Schutzkonzepte und deren Umsetzung

Modulprüfung (Grundlagen der Informationsverarbeitung und -sicherheit) am um 14:00 15:30 Uhr im HS 1 (Tivoli) Viel Erfolg!

Digicomp Hacking Day 2013 Einführung Kryptographie. Kryptographie Einführung und Anwendungsmöglichkeiten. Andreas Wisler, CEO GO OUT Production GmbH

Kryptographische Verfahren und ihre Anwendung 3. Teil: Symmetrische Verfahren II

Wiederholung: Informationssicherheit Ziele

Digital Signature and Public Key Infrastructure

und Digitale Signatur

Kryptographie I Symmetrische Kryptographie

SSL/TLS Sicherheit Warum es sich lohnt, sich mit Ciphersuites zu beschäftigen

Kapitel 3: Etwas Informationstheorie

IT-Sicherheit Kapitel 13. Sicherheit

Kryptologie. Verschlüsselungstechniken von Cäsar bis heute. Arnulf May

Datensicherheit durch Kryptographie

Kryptographie oder Verschlüsselungstechniken

ESecur Die einfache verschlüsselung

Vortrag Keysigning Party

Björn Kaidel Alexander Koch

Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009. IT-Security

9 Kryptographische Verfahren

Proseminar : Allgegenwärtiges Rechnen. Vortrag über Sicherheit. Christian Fricke cfricke@rz.uni-potsdam.de

Teil II SYMMETRISCHE KRYPTOGRAPHIE

Krypto-Begriffe U23 Krypto-Mission

Eine Praxis-orientierte Einführung in die Kryptographie

Mobilkommunikationsnetze Security -

Motivation Sicherheit. WLAN Sicherheit. Karl Unterkalmsteiner, Matthias Heimbeck. Universität Salzburg, WAP Präsentation, 2005

9 Schlüsseleinigung, Schlüsselaustausch

Schutz von Informationen bei Übertragung über unsichere Kanäle Beispiele für zu schützende Informationen

Kryptographie und Komplexität

Transkript:

IT-Sicherheitsmanagement Teil 7: Symmetrische Verschlüsselung 08.05.17 1

Literatur [7-1] Schäfer, Günter: Netzsicherheit. dpunkt, 2003 [7-2] Stallings, William: Sicherheit im Internet. Addison-Wesley, 2001 [7-3] Beutelspacher, A.; Schwenk, J.; Wolfenstetter, K.-D.: Moderne Verfahren der Kryptographie. 4. Auflage, Vieweg 2001 [7-4] Schmeh, Klaus: Kryptografie. dpunkt, 4. Auflage, 2009 [7-5] Schneier, Bruce: Angewandte Kryptographie. Addison-Wesley http://www.schneier.com/ [7-6] Freiermuth, Karin; Hromkovic, Juraj; Keller, Lucia; Steffen, Björn: Einführung in die Kryptologie. Vieweg+Teubner, 2010 [7-7] Buchmann, Johannes: Einführung in die Kryptographie. 5. Auflage, Springer, 2010 [7-8] Burnett, Steve; Paine, Stephen: Kryptographie. RSA Security s Official Guide. RSA Press, mitp, 2001 2

Übersicht Gedanken zur Brute Force-Methode Perfekte Sicherheit One-Time-Pad Meet in the Middle Betriebsarten von Blockchiffren Stromchiffren RC4 3

Brute Force Angriff ein Gedankenspiel I Schlüssellänge [bit] Anzahl möglicher Schlüssel Zeitbedarf 10 6 Entschl./s Zeitbedarf 10 11 Entschl./s 32 4,3 * 10 09 35,8 Min. 42*10-3 s 56 7,2 * 10 16 1.142 Jahre 8 Tage 128 3,4 * 10 38 5,4*10 24 Jahre 10 20 Jahre Hinweise Mit der Technologie Mitte der 90er Jahre sind in Software ca. 200.000 DES- Entschlüsselungen pro Sekunde möglich, also 2*10 5 pro Sekunde. Heute wahrscheinlich: 10 6 pro Sekunde EFF-Rechner Deep Crack (1998): 9*10 10 pro Sekunde, Kosten ca. 250.000$ Siehe: https://de.wikipedia.org/wiki/eff_des_cracker Durch Spezialhardware (Kosten ca. 8.000 EUR) soll der Schlüsselraum von 2 56 in ca. 6 Tagen durchlaufen werden können: 13*10 10 Entschlüsselungen pro Sekunde. 4

Brute Force Angriff ein Gedankenspiel II Nun realisieren wir einen Ciphertext-Only-Angriff, also einem Angriff, bei dem nur der verschlüsselte Text bekannt ist. func crack(chiphertext) { for key:= 0..2 n -1 { PlainText:= encrypt(chiphertext,key) if test(plaintext) { return key } } throw Exception("I give up") } Und wie sieht die test()-funktion aus? Woher "weiß" diese Funktion, dass der richtige Wert gefunden wurde? 5

Brute Force Angriff ein Gedankenspiel III Nehmen wir an, dass der richtige Plaintext eine Word-Datei ist, dann würde test() prüfen, ob der vermutete Plaintext überhaupt eine Word-Datei sein kann (Kopf, Struktur etc.). Kann dieser Test 10 6 mal pro Sekunde oder schneller erfolgen? Aber das reicht noch nicht, denn auch wenn formal eine Word- Datei vorliegt, muss diese nicht sinnvoll sein, denn es kann dort so etwas drin stehen: 3g&7r_90hdIk4$ etc. Noch schlimmer ist es, wenn es reiner ASCII-Text ist; dann ist der Test schnell zu implementieren, aber das Problem mit 3g&7r_90hdIk4$ besteht trotzdem. Noch schlimmer: der Ciphertext sei ein verschlüsseltes Passwort. Dann ist jeder ASCII-Text ein Kandidat für den richtigen Plaintext, sofern jedes Zeichen durch die Tastatur eingegeben werden kann. Oder: was nutzt eine geknackte Passwort-Datei mit ca. 250.000 möglichen scheinbar korrekten Zeichenketten? 6

Brute Force Angriff ein Gedankenspiel IV Nun realisieren wir einen Known-Plaintext-Angriff, also einem Angriff, bei dem der Plaintext und der ChiperText bekannt sind: func crack(chiphertext,plaintext) { for key:= 0..2 n -1 { Plain:= encrypt(chiphertext,key) if PlainText = Plain { return key } } throw Exception("I give up") } Dieser Test ist leicht in Hardware zu realisieren. Und wie sieht die "test() -Funktion aus? Trivial und sehr schnell. Bei diesem Angriff sollten wir uns wegen schneller Hardware Sorgen machen... 7

Was lernen wir daraus? Ein Angreifer versucht möglichst aus einem Ciphertext-Only-Angriff einen Known-Plaintext-Angriff zu machen und das muss verhindert werden. Liefern Sie daher dem Angreifer möglichst nie ein Paar (Chiphertext, Plaintext) oder gar eine Menge dieser Paare. Leider liefern der Kontext und weitere öffentliche Informationen genügend Hinweise: Struktur/Aufbau von Dateien oder Dateisysteme (Menschliche) Sprache, schriftliche Floskeln Protokollaufbau (Bitfelder) Bilder (Struktur der Dateien) Auch kann der Chiphertext selbst eine Quelle von Hinweisen sein, z.b. Größere gleiche Blöcke 8

Perfekte Sicherheit (Shannon) P Menge der möglichen Klartexte (plain text) C Menge der verschlüsselten Texte (cipher text) Menge der möglichen Schlüssel Ein Verschlüsselungsverfahren heißt perfekt sicher, wenn es nur einen Schlüssel zur Entschlüsselung gibt und wenn die verschlüsselten Texte unabhängig von den Klartexten sind, also dass P(p c) = P(p) mit p ε P und c ε C für alle k ε ist wobei P(p c) die bedingte Wahrscheinlichkeit ist. Das bedeutet aber auch, dass P <= C <= ist wobei die Anzahl der Elemente von bedeutet. 9

One-Time-Pad (Vernam-Chiffre) I Dieses Verfahren ist eines der wenigen, die perfekt sicher sind. Es wird eine Tabelle (Pad) mit wirklich zufälligen Zeichen der Länge L erstellt. Der Klartext hat dieselbe Länge L. Verschlüsselung: Jedes Zeichen des Klartextes wird mit dem korrespondierenden Zeichen der Tabelle verknüpft, z. B. per XOR. Entschlüsselung: Jedes Zeichen des Chiffretextes wird mit dem korrespondierenden Zeichen der Tabelle mit einer inversen Funktion verknüpft, z. B. auch per XOR. 10

One-Time-Pad (Vernam-Chiffre) II Vorteile Sehr sicher, wenn wirklich zufällige Kodierungen benutzt werden Im 2.Weltkrieg hatte die Sowjetische Armee Wiederholungen benutzt, so dass einige Texte entschlüsselt werden konnten. Nachteile Unhandlich Beide Seiten müssen dieselbe unhandliche Tabelle benutzen. 11

Begriffe Blockchiffre = Unabhängige Ver-/Entschlüsselung von Blöcken gleicher Länge, meist 64 bit Jeder Block wird für sich getrennt von anderen behandelt. Die kryptographischen Nachteile werden durch Blockmodi beseitigt. Stromchiffre = Kontinuierliche Verschlüsselung unterschiedlich langer Blöcke, von 1 bit bis viele Bytes auch variierend In der Praxis wird jeweils ein Byte behandelt. 12

Blockchiffren Digital Encryption Standard (DES) Blockchiffre mit 56 bit effektiver Schlüssellänge, Schlüssel besitzt noch 8 Bits Prüfsumme Block ist 64 bit lang Entwickelt von IBM Anfang der 70er Jahre Das DES-Verfahren ist (bis auf die Schlüssellänge) sehr sicher: in 35 Jahren ist es nicht gelungen das Verfahren zu brechen, aber: Bis 1997 keine erfolgreiche Known-Plaintext-Attacke, dann aber: DES-Challenge (Preis von RSA Data Security) 14.000 Rechner rechneten ca. 4 Monate 1998: Reduktion auf 39 Tage, teilweise 56 h 1999: Unterschreitung der 24 h-grenze 100.000 Rechner rechneten 22 h Ab ca. 2000: Bau von speziellen Maschinen DES gehört zu den am besten untersuchten Verfahren. Ursprünglich wollte IBM einen 128 bit-schlüssel benutzen und wurde von der US-Regierung daran gehindert. 13

Schlüssellängen - Ein weiteres Gedankenexperiment Schlüssellänge Dauer der Entschlüsselung 56 bit 1 s 64 bit 4 Minuten 80 bit 194 Tage 112 bit 10 9 Jahre 128 bit 10 14 Jahre 192 bit 10 33 Jahre 256 bit 10 52 Jahre Erläuterung: Wenn das Durchprobieren aller 56 bit-schlüssel 1s dauern würde, dann würde bei einem 64 bit-schlüssel das Probieren schon 4 Minuten dauern... 14

Doppelte Verschlüsselung Es entsteht eine doppelte Verschlüsselung und damit eine theoretische Verlängerung des Schlüssels auf 2*56 also 112 bit. Dies wäre ausreichend. Dabei wird vorausgesetzt, dass eine doppelte Verschlüsselung nicht durch eine einzige mit einem anderen Schlüssel ersetzt werden kann. Diese Bedingung erfüllt DES, aber z.b. nicht XOR. Es gibt aber einen Angriff: Meet in the Middle. 15

Meet in the Middle I (A) (B) (M) Plaintext ist bekannt Chiffretext ist bekannt Es ist ein Paar(Plaintext, Chiffretext) bekannt. (A): vom Plaintext ausgehend werden alle Schlüssel (2 56 ) angewendet und in in einer Tabelle abgespeichert. Das ist die Menge aller Werte (M). Dann wird vom Chiffretext ausgehend alle Schlüssel (2 56 ) schrittweise entschlüsselt. Bei jedem Schritt wird geprüft, ob ein Wert aus der Tabelle der (M) gefunden wurde. Falls ja, dann ist das Paar (K 1, K 2 ) ein Kandidat der gesuchten Schlüssel. Leider/zum Glück ist das nicht eindeutig, denn es werden mehrere Kandidaten gefunden. Dann wären weitere Paare(Plaintext, Chiffretext) notwendig, um die falschen Kandidaten auszusortieren. 16

Meet in the Middle II - Aufwand Ein volles Durchprobieren für K 1 : 2 56 DES Abspeichern und Sortieren in der Datenbank Ein volles Durchprobieren für K 2 : 2 56 DES Bei jedem Schritt: Suchen in der Datenbank Ergebnis: Menge von Kandidaten Anhand eines weiteren Paares (Plaintext, Chiffretext) wird jeder Kandidat jeweils 1x geprüft und gegebenenfalls aussortiert. Sind noch Kandidaten übrig, müssen diese mit einem weiteren Paar (Plaintext, Chiffretext) ausgeschlossen werden. d.h. bestenfalls eine effektive Schlüssellänge von 2 58, eher 2 57. 17

Dreifache Verschlüsselung I (A) (B) (M) Nun hätten wir 3x56 bit, also einen 168 bit-schlüssel. Aber auch hier funktioniert der Meet in the Middle-Angriff, so dass für K 1 je 2 56 und für K 2 auch 2 56 Schlüssel zu probieren und in der Tabelle abzuspeichern sind: 2 112. Dazu kommt noch der rechte Zweig mit 2 56, was aber in Anbetracht von 2 112 zu vernachlässigen ist. Die effektive Schlüssellänge ist 112 bit, was (heute) ausreichend ist (siehe Gedankenexperiment von oben) 18

Dreifache Verschlüsselung II - Triple-DES (3DES) Die 2. Verschlüsselung ist eine "Entschlüsselung" Optional steht dann noch eine 1DES zur Verfügung, wenn K 1 = K 2 = k 3 ist. Sonst keine Vor- oder Nachteile, außer Performanz e: Verschlüsselung, d: Entschlüsselung, m: Klartext, c: Chiffretext: c= e(k 1,d(k 2,e(k 3,m))) Falls K 1 = K 3, dann ist die Schlüssellänge 112 bit. In der Praxis wird so gearbeitet. 19

Weitere Verfahren neben AES und DES Blowfish https://de.wikipedia.org/wiki/blowfish Twofish Teilnehmer am AES-Wettbewerb https://de.wikipedia.org/wiki/twofish CAST-256 Wird von PGP benutzt RFC 2144, 128 bit-schlüssel Teilnehmer am AES-Wettbewerb MISTY Mitsubishi 64 bit-blöcke, variable Runden mit 128 bit-schlüssel Parallelisierbarkeit Und noch: Safer, GOST, LOKI, Khufu, Khafre... 20

Betriebsarten von Blockchiffren Der Zweck der Betriebsarten/Modi liegt darin, verschiedene Blöcke so zu verknüpfen, dass bei Unkenntnis des Schlüssels das Entschlüsseln erschwert wird. Voraussetzung dazu ist das Auffüllen des letzten Blocks auf das Mehrfache der Blocklänge (Padding). Diese Zusatzbits müssen beim Entschlüsseln wieder entfernt werden. Es werden folgende Betriebsarten vorgestellt: Electronic Codebook Mode (ECB-Mode) Cipher Block Chaining Mode (CBC-Mode) Output Feedback Mode (OFB-Mode) Cipher Feedback Mode (CFB-Mode) Siehe auch: http://en.wikipedia.org/wiki/block_cipher_modes_of_operation 21

Electronic Codebook Mode (ECB-Mode) I Plain 1 Plain 2 Plain 3 Plain n Verschlüsselung Cypher 1 Cypher 2 Cypher 3 Cypher n Vorteile und Probleme Parallelität ist sehr einfach zu realisieren. Für kurze Nachrichten ist ECB vollkommen geeignet Ansonsten: nicht benutzen! 22

Electronic Codebook Mode (ECB-Mode) II Cypher 1 Cypher 2 Cypher 3 Cypher n Entschlüsselung decrypt k decrypt k decrypt k decrypt k Plain 1 Plain 2 Plain 3 Plain n Probleme Angriff durch Häufigkeitsanalyse möglich Gleiche Blöcke werden gleich verschlüsselt. Siehe auch: https://de.wikipedia.org/wiki/electronic_code_book_mode 23

Cipher Block Chaining Mode (CBC-Mode) I Plain 1 Plain 2 Plain 3 Plain n Verschlüsselung Initialisierungsvektor + + + + Cypher 1 Cypher 2 Cypher 3 Cypher n Der Initialisierungsvektor ist ein nicht geheimer Block, mit dem als erstes per XOR verschlüsselt wird. Nun gibt es keine gleichen Chiffreblocks bei denselben Klartextblöcken mehr. Mit einer XOR-Funktion wird "addiert". 24

Cipher Block Chaining Mode (CBC-Mode) II Cypher 1 Cypher 2 Cypher 3 Cypher n Entschlüsselung decrypt k decrypt k decrypt k decrypt k Initialisierungsvektor + + + + Plain 1 Plain 2 Plain 3 Plain n Dies ist die zu empfehlende Betriebsart Siehe auch: https://de.wikipedia.org/wiki/cipher_block_chaining_mode 25

Output Feedback Mode (OFB-Mode) I Initialisierungsvektor Plain 1 Plain 2 Plain 3 Plain n Verschlüsselung + + + + Cypher 1 Cypher 2 Cypher 3 Cypher n Der Initialvektor wird in einer Fortschaltfunktion wiederholt mit dem Schlüssel verschlüsselt. Mit jeweils dem neuen verschlüsselten Wert werden per XOR die Klartextblöcke verschlüsselt. 26

Output Feedback Mode (OFB-Mode) II Initialisierungsvektor Cypher 1 Cypher 2 Cypher 3 Cypher n Entschlüsselung + + + + Plain 1 Plain 2 Plain 3 Plain n Die Verschlüsselungsketten können im Voraus/parallel berechnet werden, so dass Parallelität erreicht werden kann. Diese Art der mehrfach verschlüsselten Werte wird uns bei dem Pseudozufallsgeneratoren und bei den Stromchiffren wieder begegnen. Siehe auch: https://de.wikipedia.org/wiki/output_feedback_mode 27

Counter Mode (CTR) I - Verschlüsselung Plain 1 Plain 2 Plain 3 Plain n Startwert +1 +1 +1 + + + + Cypher 1 Cypher 2 Cypher 3 Cypher n Beginnend mit einem Startwert, wird dieser verschlüsselt mit dem geheimen Schlüssel. Für jeden Folgeblock wird der Startwert um 1 erhöht. 28

Counter Mode (CTR) II - Entschlüsselung Cypher 1 Cypher 2 Cypher 3 Cypher n Startwert +1 +1 +1 + + + + Plain 1 Plain 2 Plain 3 Plain n Die Entschlüsselung verläuft genauso wie die Verschlüsselung. 29

Counter Mode (CTR) III - Startwert Nonce 0 +1 Nonce 1 Counter Nonce = number used once = eine (lange) ganze Zahl, die nur ein einziges Mal benutzt wird Damit die Wahrscheinlichkeit für eine mehrfache Benutzung sehr klein ist, sollte eine lange, echte Zufallszahl benutzt werden. Es darf niemals bei diesem Modus ein Nonce-Wert doppelt benutzt werden. Siehe https://de.wikipedia.org/wiki/nonce http://stackoverflow.com/questions/4145531/how-to-create-and-usenonces 30

Stromchiffren Blockchiffren haben den Nachteil, dass der Klartext in Einheiten der Blockgröße vorliegen sollte. Für interaktive Anwendungen heißt dies, dass gewartet werden muss bis ein Block vorhanden ist oder dass der Block mit Füllinformation aufgefüllt werden muss. Stromchiffren = Verschlüsselungsalgorithmen, die keine Einheiten mit festgelegter Größe (Blöcke) benötigen und bei denen die Einheiten ähnlich den Blockmodi verknüpft sind. 31

Verfahren von Ron Rivest RC2 (Rivest Cipher), RFC 2268 RC4 RC5 RC6 Einsatz in S/MIME Relativ wenig untersucht Entwickelt 1987 Geheim gehalten bis 1994 Schnell und einfach Teilnehmer am AES-Wettbewerb Siehe: http://de.wikipedia.org/wiki/ronald_l._rivest http://en.wikipedia.org/wiki/rc2 http://en.wikipedia.org/wiki/rc5 32

RC 4 Rivest Cipher No. 4, 1987, http://en.wikipedia.org/wiki/rc4_(cipher) Erst geheim, ab 1994 veröffentlicht. Siehe https://tools.ietf.org/html/draft-kaukonen-cipher-arcfour-03 http://en.wikipedia.org/wiki/rc4_(cipher) 33

RC 4 - Vorbereitung Schlüssellänge: 1..2048 bit, praktisch: 128 oder 256 bit In ein Feld S mit 256 Zellen wird der jeweiligen Index zugewiesen. Das Feld k wird mit Schlüssel der Länge L des Schlüssels gefüllt, nötigenfalls mehrfach hintereinander. Dann werden 256 mal die Elemente in S anhand von k vertauscht: S 0 S 1 S 2 S 3 S 4 S 5... S 255 :=Index k 0 k 1 k 2 k 3 k 4 k 5... k 255 Byteweise mit Schlüssel füllen Falls Schlüssel kürzer als 2048 bit: Mehrfach wiederholen for j:=0, i:=0 to 255 do j:=(j + S[i] + k[i mod L]) mod 256 swap(s[i],s[j]) od 34

RC 4 - Durchführung Das Feld S von 256 Elementen, in denen die Werte von 0 bis 255 entsprechend dem Schlüssel gesetzt wurden, wird nach dem Verfahren unten bearbeitet. Das Ergebnis eines Durchlaufs Key wird mit XOR mit den Klartext verschlüsselt. Für das nächste Byte wird ein erneuter Durchlauf durchgeführt. i:= (i+1) mod 256; j:= (j+s[i]) mod 256; swab(s[i],s[j]) key:= (S[i]+S[j]) mod 256; Cipher[..]:= Plain[..] xor key 35

RC 4 Probleme und Lösungen(?) Es muss eine wirkliche 2048bit-lange Zufallszahl als Schlüssel benutzt werden, keine kürzeren Schlüssel, die dann mehrfach hintereinander gesetzt werden. Da der volle Schlüssel sich erst nach einer gewissen Anzahl von generierten Bytes auswirkt, sollten mindestens die ersten 256 Bytes verworfen werden. Es dürfen keine Schlüssel doppelt benutzt werden, da dann nach einem Chosen-Plaintext-Angriff leicht entschlüsselt werden kann (dasselbe gilt auch für den CTR-Modus) http://www.crypto.com/papers/others/rc4_ksaproc.pdf Ohne dies zu beachten ist von der Benutzung von RC4 abzuraten. 36

RC 4 Verbesserung durch SPRITZ i:= i+w mod 256; j:= k+s[j+s[i]mod 256] mod 256; k:= i+k+s[j] mod 256; swab(s[i],s[j]) key:= S[j+S[i+S[key+k mod 256] mod 256] mod 256]; Cipher[..]:= Plain[..] xor key Die Zahl w ist teilerfremd zu 256; die Schlüsselinitialisierung ist anders als bei RC4. Siehe https://de.wikipedia.org/wiki/rc4 http://people.csail.mit.edu/rivest/pubs/rs14.pdf https://www.schneier.com/blog/archives/2014/10/spritz_a_new_rc.html https://github.com/romanvolkov-io/rc4-spritz https://eprint.iacr.org/2016/092.pdf 37

Weitere Stromchiffren (Beispiele) A5 Einsatz in Mobil Telefonen: D1, D2 E-Plus und E2 Gehört zum GSM-Standard War zunächst geheim Ist in den beiden einfachen Versionen recht unsicher, die dritte ist besser (A5/3) Siehe: http://de.wikipedia.org/wiki/a5_(algorithmus) SEAL Sicherheit und Schnelligkeit ähnlich RC4 Salsa20 und ChaCha20 Eigenes Verfahren in winzip Sehr unsicher 38

Nach dieser Anstrengung etwas Entspannung... 39