Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Sicherer Kanal: von Alice zu Bob

Ähnliche Präsentationen


Präsentation zum Thema: "Sicherer Kanal: von Alice zu Bob"—  Präsentation transkript:

1 Sicherer Kanal: von Alice zu Bob
Blockchiffren, Stromchiffren

2 Aktuell: http://heise.de/-1573945
Dr. Wolf Müller

3 Kodierung versus Verschlüsselung
Ist base64 ein symmetrisches Verschlüsselungsverfahren? Bijektive Abbildung von Nachrichtentext und kodiertem Text. Auch zwischen verschiedenen Alphabeten. Genaue Vorschrift für Encoding, Decoding. ABER: Jeder kann es, kein zusätzliches Wissen nötig! Kein Schlüssel. Dr. Wolf Müller

4 Blockchiffren Klartext M
Verarbeitung von Eingabeblöcken fester Länge, wobei jeder Block mit der gleichen Funktion verschlüsselt wird. Typische Blockgröße 64-Bit Klartext M der Länge m wird in r Blöcke der Länge n zerlegt. Letzter Block hat Länge 1≤k≤n, wird mit Füllmuster aufgefüllt (Padding) Damit bei Entschlüsselung das Ende des originalen Klartextes im aufgefüllten Block erkennbar, muss Länge des Füllbereichs oder Länge des Klartextbereichs mit in diesen Block codiert werden. Ver- / Entschlüsselung separat für jeden Block mit gleichem Schlüssel K bzw. K‘, mit f(K)= K‘. M1 M2 M3 Mr Schlüssel K K Schlüssel K Verschlüsselung Verschlüsselung Verschlüsselung C1 C2 Cr Schlüssel K‘ K‘ Schlüssel K‘ Verschlüsselung Verschlüsselung Verschlüsselung M1 M2 Mr Klartext M Dr. Wolf Müller

5 Block Operation Modes: ECB
Electronic Codebook (ECB) Ci=E(Mi,K), Mi=D(Ci,K) Sender: Encryption Empfänger: Decryption E K M1 C1 E K M2 C2 D K C1 M1 D K C2 M2 Time Probleme? Dr. Wolf Müller

6 Demo #!/bin/bash CHIPHER=$1 BMP="xxx.bmp" ENC="enc-"$CHIPHER".bmp" rm -f $ENC tmp.enc #Längen LL=`ls -l $BMP | awk '{print $5}'` #Length HH=54 #Header BB=$(($LL-$HH)) #Body #Encryption openssl enc -$CHIPHER -e -in $BMP -out tmp.enc -k 0815 #BMP (Header + Encrypted Body without Padding) head -c $HH $BMP > $ENC tail -c $BB tmp.enc >> $ENC echo "$ENC written!" Dr. Wolf Müller

7 Ergebnisse: xxx.bmp des-cbc des-ecb aes-128-ecb aes-256-ecb
Dr. Wolf Müller

8 Block Operation Modes: ECB
Eigenschaften ECB Jeder Block ist unabhängig von anderen Blöcken. Verschlüsselung von gleichem Plaintext wird zu gleichem Ciffretext verschlüsselt. Fehlerfortpflanzung: Wenn ein Fehler in einem Chiffreblock vorkommt, ist nur der entsprechende Plaintextblock betroffen. Synchronisation: Wenn der Empfänger die Blockgrenzen nicht synchronisieren kann, ist eine Entschlüsselung unmöglich. Blöcke können unbemerkt dupliziert, hinzugefügt, vertauscht oder entfernt werden! Dr. Wolf Müller

9 Block Operation Modes: CBC
Cipher Block Chaining (CBC) Ci=E(MiCi-1,K), Mi=D(Ci,K)Ci-1, C0=IV Initialisierungsvektor Sender: Encryption Empfänger: Decryption M1 M2 C1 C2 IV=C0 D D k k E E k k IV C1 C2 M1 M2 Dr. Wolf Müller

10 Block Operation Modes: CBC
Eigenschaften von CBC Initialisierungsvektor IV muss angegeben werden. IV muss nicht geheim sein. Chiffreblock hängt ab von IV und allen Plaintextblöcken vor ihm. Identische Plaintextblöcke werden in verschiedene Chiffetextblöcke verschlüsselt. Reihenfolge der Blöcke ist signifikant. Wird sie verändert, ändert sich die Chiffrierung. Identische Plaintext-Sequenzen (am Anfang) werden zu identischen Chiffre-Sequenzen verschlüsselt, es sollten also unterschiedliche Initialisierungsvektoren verwendet werden. Fehlerfortpflanzung: Wenn ein Fehler in einem Chiffreblock auftritt, kann dieser und der nächste Plaintextblock nicht entschlüsselt werden. Synchronisation: Wenn Synchronisation bei diesem Chiffreblock wiedergewonnen wird, können dieser und der nächste Plaintextblock nicht entschlüsselt werden. Dr. Wolf Müller

11 Block Operation Modes: CFB
Cipher Feedback (CFB) Ci=E(Ci-1,K)Mi, Mi=D(Ci-1,K)Ci, C0=IV Sender: Encryption Empfänger: Decryption Ci-1 Ci-1 D k E k Ci Mi Mi Ci Gleiche Eigenschaften, wie CBC. Nachrichten kürzerer als Blockgröße sind möglich. Dr. Wolf Müller

12 Block operation modes: OFB
Output Feedback (OFB) zi=E(zi-1,K), Ci=ziMi, Mi=ziCi, z0=IV Sender: Encryption Empfänger: Decryption zi-1 Mi zi-1 Ci E k D k Ci Mi Nachrichten kürzer als Blockgröße sind möglich. Dr. Wolf Müller

13 Block operation modes: OFB
OFB Eigenschaften Zustandssequenz zi ist unabhängig vom Plaintext. (Vorausberechnung möglich) Entspricht Verschlüsselung mit Pseudozufallszahlengenerator mit nichtlinearem Feedback. Fehlerfortpflanzung: keine. Synchronisation: Wenn Grenzsynchronisation verloren ist, muss das ganze System neu synchronisiert werden. Dr. Wolf Müller

14 Block operation modes: Weiteres
Übersicht: Standard/Praxis: Recommendation for Block Cipher Modes of Operation (NIST) Interessant: Counter CTR-Mode: vorberechenbar paralellisierbar Ggf. für Dateisysteme Dr. Wolf Müller

15 Block operation modes: CTR
Counter (CTR) zi=E(nonce | i , K), Ci=ziMi, Mi=ziCi, Sender: Encryption Empfänger: Decryption nonce | i Mi nonce | i Ci E k E k Ci Mi Nachrichten kürzer als Blockgröße sind möglich. Dr. Wolf Müller

16 Blockchiffre Algorithmen:
DES 3DES AES Dr. Wolf Müller

17 DES: Historie Data Encryption Standard (kurz: DES) DES Geschichte:
Entwickelt durch IBM 1974 publiziert 1977 Anerkennung von DES als Standard durch ‘National Bureau of Standards’, heute NIST 1981 Anerkennung von DES als Standard durch ‘American National Standards Institute’ (ANSI X3.92) Dr. Wolf Müller

18 DES Symmetrischer Algorithmus
Blockchiffre: Message blocks von 64 Bits. Verschlüsselung in Chiffreblocks von 64 Bits. Schlüssel von 64 Bits. Signifikante Schlüssellänge 56 Bits, mit 8 Paritätsbits |K|=256 64 bits Mi 64 bits Mi DES Key K 64(56) bits DES-1 Encryption Decryption 64 bits Ci 64 bits Ci Dr. Wolf Müller

19 DES: Blockchiffre Seine Entstehungsgeschichte gab wegen der Beteiligung der NSA am Design des Algorithmus immer wieder Anlass zu Spekulationen über seine Sicherheit. Verschlüsselungstechniken: Bitpermutationen (Transpositionen) Substitutionen bitweise Addition modulo 2 Schlüssellänge für heutigen Stand der Technik unzureichend, durch AES abgelöst. Jedoch noch in viele kommerzielle Produkte integriert. Dr. Wolf Müller

20 Blockchiffre: Triple DES (3DES)
DES Algorithmus ist kryptografisch stark, Wunsch, Schlüssellänge zu erhöhen. Lösung: Mehrfachverschlüsselung des Klartexts mit verschiedenen Schlüsseln DES-Verschlüsselungen bilden keine Gruppe, Verwendung verschiedener Schlüssel kann auf Vergrößerung des Schlüsselraumes führen. Aber: Zweifach Verschlüsselung liefert nicht Schlüsselraum von Mit Meet-in-the-middle Angriff werden nur 257 Ciffrier- und Dechiffriervorgänge gebraucht, um Schlüssel zu brechen. Fortschritte durch Triple-DES (3 Schlüssel K1, K2, K3): Verschlüsselung: DES (DES-1(DES (X,K1), K2), K3) Entschlüsselung: DES-1(DES (DES-1 (X,K3), K2), K1) Effektive Schlüssellänge anstelle von 168 Bit nur 108 Bit, Schlüsselraum 2108, länger, aber auf lange Sicht nicht ausreichend! 3fache Verschlüsselung recht ineffizient Dr. Wolf Müller

21 AES-Wettbewerb Januar 1997: Wettbewerb für neue Verschlüsselungstechnik durch Nationales Institut für Standards und Technologie der USA (NIST) ausgerufen AES soll ein Federal Information Processing Standard (FIPS) werden Evaluierung von Sicherheit und Effizienz nicht durch NIST selbst, sondern offen. Anforderungen: symmetrischer Blockchiffre Blockgröße:128 Bit Schlüssellängen: 128, 192 und 256 Bit Resistenz gegen alle Methoden der Kryptoanalyse sehr effizient in Software und Hardware (auch auf 8 Bit-Prozessoren (Chipcards)) einfach implementierbar

22 AES-Wettbewerb: Finalisten
MARS Sehr langsam in HW, für einfache Chipkarten ungeeignet. RC6 Langsam in HW, für billige Chipkarten ungeeignet. Serpent Schnell in HW, langsam in SW Twofish Relativ schnell in HW. Schnell in SW. Rijndael Schnell in HW & SW Einfaches, elegantes Design. Dr. Wolf Müller

23 AES: The Winner is? Rijndael
Oktober 2002 : Rijndael Autoren: Joan Daemen, Vincent Rijmen (Belgien) Algorithmus hat sehr gute Performance in Hardware und Software Algorithmus ist sehr einfach Rijndael verschlüsselt mit 8 und 32 Bit Operationen 8 Bit = 1 Byte und Bit = 4 Byte = 1 Wort Blockgröße nicht zwingend 128 Bit (AES), sondern jedes Vielfache von 32 zwischen 128 und 256 Bit möglich. * 1970 * 1965 In puncto Sicherheit gab es auch einige Kandidaten, welche Rijndael gleichwertig waren

24 Rijndael GF(2) |8 Byte b7…b0 als Koeffizienten eines Polynoms darstellbar: b(x) = b7x7 + b6x6+ … + b2x2 + b1x + b0 Beispiel:  x6 + x4 + x + 1 b(x) repräsentiert Elemente des endlichen Körpers GF(2)|8 Alle möglichen Bytes sind genau die Elemente von GF(2)|8 Endlicher Körper <F, Å, Ä >: <F, Å> und <F\{0}, Ä> sind abelsche Gruppen Å und Ä sind distributiv Å ist Addition der Komponenten modulo 2, auf Byte-Ebene entspricht Å der Operation XOR Ä ist Multiplikation von Bytes modulo m(x)= x8 + x4 + x3 + x + 1 (irreduzibles Polynom, 8ten Grades) Multiplikation von Worten: wie mit Bytes, mit irreduziblem Polynom m(x) = x4 +1

25 AES Verschlüsselungs-Runde
Datablock di-1: 128 Bits/16 Bytes AES Key: 128/192/256 Bit Transformationen basierend auf Byte-Operationen - Substitution - Permutation - Intermix Rundenschlüssel abgeleitet vom AES Key 10/12/14 mal, abhängig von Schlüsselgröße Data block di: 128 bits/16 bytes Keine Transformationsbox in Anfangsrunde Kein Intermix in letzter Runde Dr. Wolf Müller

26 AES Verschlüsselungs-Runde (2)
Transformationen: Substitution Jedes Byte durch sein multiplikativ-inversen Wert ersetzt. Bytes werden verwendet, um Polynome von einem Grad kleiner 8 darzustellen, wegen der Reduktion auf irreduzible Polynome modulo 8 Bytes werden als Elemente eines endlichen Körpers interpretiert. Addition und Multiplikation sind definiert, unterscheiden sich aber von der von normalen Zahlen. Permutation Positionstausch der Bytes Intermix Matrix Multiplikation der Bytes in dem „internen Zustand“ Dr. Wolf Müller

27 AES Verschlüsselungs-Runde (3)
Schlüsselableitung: Mit Schlüssellänge 128 Bit, jede Runde erfordert 128 Bit. Schlüssel wird in 4 Worte zu je Byte aufgeteilt. wi=wi-1 XOR wi-4 Wenn i mod 4=0, wird Schlüsseltransformation (KT) angewendet. KT beinhaltet Byte- Verschiebungen, Substitutionen und die Addition einer „Runden- konstanten“, Quadrierung im Raum der irreduziblen Polynome in GF(28). KT w0 w1 w2 w3 w4 w5 w6 w7 AES Key =Schlüssel für Runde 0 Schlüssel für Runde 1 Dr. Wolf Müller

28 Rijndael: Kryptoanalyse & Verwendung
resistent gegen lineare und differenzielle Kryptoanalyse saturation attack chosen-plaintext + Ausnutzung der byte-orientierten Struktur  (bisher) nur für rundenreduzierte (7 Runden) Version möglich Angriffe auf Implementierung: timing attack power analysis Verwendung: WPA2, Truecrypt, SSH, IPsec Skype, 7-Zip,PGP Implementation attacks: man muss den Verschlüsselungsvorgang des verschlüsselnden Rechners analysieren Timing attack: von Ausführungszeit können Rückschlüsse auf Schlüssel gezogen werden Power analysis: Ressourcenverbrauch während der Verschlüsselung wird analysiert

29 Demo in Crypttool Dr. Wolf Müller

30 Stromchiffren Initialwert Initialwert Schlüssel- zeichen
Sicherer Austausch Initialwert Initialwert Schlüssel- zeichen Klartext Chiffretext Schlüssel- zeichen Chiffretext Klartext Pseudozufalls- zahlengenerator Pseudozufalls- zahlengenerator unsicherer Kanal Empfänger Sender Dr. Wolf Müller

31 (Pseudo) Zufallsgeneratoren
Nichtdeterministisch Physikalisch (thermisches Rauschen, radioaktiver Zerfall …) Wichtig: äußere Einflussnahme ausschließen Ggf. Nutzung spezieller Hardware Quasizufällige Ereignisse (/dev/random) Pseudozufallsgeneratoren: (PRNG) Deterministisch Startwert / Initialisierung Dann abgeleitet über deterministischen Algorithmus aus innerem Zustand Periodisch, wenn endlicher Zustand! Sqrt(n) ist i.A. nicht periodisch, Zustand des Rechners aber endlich. Hybrid möglich: Startwert von echtem RNG, dann PRNG  periodisch (wenn keine Neuinitialisierung) Dr. Wolf Müller

32 PRNG Besondere Anforderungen an kryptografische PRNG
Statistische Verteilung sehr ähnlich zu „echtem Zufall“ Gleichverteilung für einzelne Ausgaben Normalverteilung für Mehrfachausgaben … Tests BSI-TR „Kryptografische Verfahren: Empfehlungen und Schlüssellängen“ (siehe Zufallszahlengeneratoren) Praktisch unmöglich, zu bekannter Zufallszahlenfolge Vorgänger oder Nachfolger dieser Teilfolge oder inneren Zustand zu berechnen. Praktisch unmöglich, aus Kenntnis eines inneren Zustandes Vorgänger der Teilfolge oder Vorgängerzustände zu berechnen. Entropie des Seed mindestens 100 Bit Dr. Wolf Müller

33 RC4 1987 von Ronald L. Rivest für RSA Data Security Inc. entwickelt.
Anfänglich (7 Jahre) geheim. RC4 (Ronald's Code 4) Variable Schlüssellänge bis 2048 Bit 1 Byte pro Schritt generiert/verschlüsselt S-Box, Permutation, Substitution Sehr effizient, einfach zu Implementieren Schwächen: Initialisierung der S-Box (in praktischer Umsetzung) Bei zufällig gewählter S-Box, auch gegenwertig kaum zu knacken Dr. Wolf Müller

34 S RC4 i k S[i]+S[k] 254 255 1 2 i k S[i] S[k] K S[i]+S[k] i := 0
1 2 i k S[i] S[k] K S[i]+S[k] i := 0 k := 0 while GeneratingOutput: i := (i + 1) mod 256 k := (k + S[i]) mod 256 swap values of S[i] and S[k] K := S[(S[i] + S[k]) mod 256] output K endwhile Dr. Wolf Müller

35 RC4: Schlüsselinitialisierung
for i from 0 to 255 S[i] := i endfor j := 0 j := (j + S[i] + key[i mod keylength]) mod 256 swap values of S[i] and S[j] Dr. Wolf Müller

36 Stromchiffren: Bemerkungen
RC4 braucht gute Initialisierung. Gute Blockchiffren können in entsprechenden Modi (OFB, CTR) wie Stromchiffren genutzt werden. eSTREAM: the ECRYPT Stream Cipher Project Starke schnelle Stromchiffren gesucht: Dr. Wolf Müller

37 Testfragen: Unterschied zwischen: Kodierung und Verschlüsselung?
Symmetrischer und asymmetrischer Verschlüsselung? Stromchiffre und Blockchiffre? ECB, CBC, und CTR-Modus? Stromchiffre und „one time pad“? RNG und PRNG? Dr. Wolf Müller


Herunterladen ppt "Sicherer Kanal: von Alice zu Bob"

Ähnliche Präsentationen


Google-Anzeigen