Security Overview - Universität zu Lübeck

Transcription

Security Overview - Universität zu Lübeck
Security
Cryptology
Dr. Dennis Pfisterer
Institut für Telematik, Universität zu Lübeck
http://www.itm.uni-luebeck.de/users/pfisterer
Overview
• Fundamental Terms
• Basics of Cryptology
• Techniques
–
–
–
–
–
Substitution Ciphers: Caesar, Vigenère, etc.
Enigma
One-Time Pad
DES
RSA
Security - 04 Cryptology
#2
1
Fundamental Terms
• Cryptology comprises two main areas
– Cryptography: Techniques for protecting data by encryption
(Verschlüsselung)
– Cryptanalysis: Science of breaking cryptography ciphers w/o knowing
the encryption key (Kryptanalyse)
• Cryptology is often clouded in secrecy
– Very old and clandestine technology
– “Cryptic” and (today) based on complex algorithms
– Security of algorithms hard to understand for normal people
– Domain of military and intelligence services (believed that military
research is/was always ahead of the public one)
– Sometimes cryptology treated like a weapon
Security - 04 Cryptology
#3
http://www.pgpi.org/pgpi/project/scanning/
Security - 04 Cryptology
#4
2
Terms
Encryption
(Verschlüsselung,
Codierung,
Chiffrierung):
Transformation of
plaintext to
ciphertext
Plaintext
(Klartext):
Ciphertext
(Geheimtext):
Result of
encryption
Text to encrypt
Decryption
(Entschlüsselung,
Decodierung,
Dechiffrierung):
Transformation of
ciphertext to
plaintext
Security - 04 Cryptology
#5
Taxonomy of Cryptography
Secret
Communication
Steganography
(Hide data)
Cryptography
(Encrypt data)
Substitution
(Replace
characters)
Security - 04 Cryptology
Transposition
(Permute
characters)
#6
3
Steganography (Greek: concealed writing)
• Hide information such that others can’t see it
– Security through obscurity
– Messages appear as something else
– E.g., images, plain text
• Advantage over cryptography
– Messages do not attract attention by others
(such as encrypted text)
– Usable when cryptography is illegal
Security - 04 Cryptology
#7
Steganography: Example
• „Liebe Kolleginnen! Wir genießen nun endlich unsere Ferien auf
dieser Insel vor Spanien. Wetter gut, Unterkunft auch, ebenso das
Essen. Toll! Gruß, J. D.“
• Algorithm
– Count characters until the next space character
– Odd binary 0, even binary 1
– Read binary numbers as 8-Bit ASCII characters
• Result
–
–
–
–
First 8 words: 01010011, ASCII ‘S‘
Next 8 words: 01001111, ASCII ‘O‘
Last 8 words: 01010011, ASCII ‘S‘
Hidden text: SOS
Security - 04 Cryptology
#8
4
Steganography: Using digital files
• Modify images such that humans will
not notice any difference
– Conceal data in the lowest bits of noisy
images, sound files, or videos
• Example
– Image hidden in another image
– Revealed by retaining the two least
significant bits of each color component
(and subsequent normalization)
Figure sources: http://upload.wikimedia.org/wikipedia/commons/4/4e/StenographyOriginal.png
Securityand
- 04http://upload.wikimedia.org/wikipedia/commons/1/1b/StenographyRecovered.png
Cryptology
#9
Steganography
• Advantages?
• Disadvantages?
• Application areas?
Security - 04 Cryptology
#10
5
Einfache Substitution: Geheimschriften
• Klassische Kryptographie
– Geheimschriften: Ersetze einen Buchstaben durch ein
Geheimzeichen mit Hilfe einer Tabelle
– Beispiel: „Alphabetum Kaldeorum“ aus dem frühen Mittelalter
Quelle: http://wikipedia.de (Heiko Hahn)
Security - 04 Cryptology
#11
Geheimschriften: Schwächen
• Ist der Algorithmus (Tabelle) bekannt, so kann jeder
die Nachricht lesen
• Es lässt sich damit keine Vertraulichkeit zwischen zwei
Kommunikationspartnern erreichen
• Dieses Verfahren skaliert nicht und birgt zu viele
Risiken
⇒ Daher: Verschlüsselung
Security - 04 Cryptology
#12
6
Prinzip der Verschlüsselung
Schlüssel
des Empfängers
Schlüssel
des Senders
Geheimtext
Algorithmus
Algorithmus
Klartext
Klartext
Security - 04 Cryptology
#13
Geheime Schlüsselverfahren
• Kommunikationspartner A und B
– Besitzen gemeinsamen geheimen Schlüssel Kc
– Kc wird für Ver- und Entschlüsselung eingesetzt
• Bis Mitte der 1970er Jahre
– Nur Verfahren mit geheimem Schlüssel bekannt
• Im Folgenden zunächst die gängigsten Verfahren der
Geschichte
Security - 04 Cryptology
#14
7
Caesar-Verschlüsselung
• Angeblich von Julius Caesar erfunden
– Eine der ältesten Verschlüsselungsmethoden
• Buchstaben werden durch im Alphabet 3 Plätze weiter hinten
stehenden ersetzt
–
–
–
–
A
B
....
Z
D
E
C
• Verallgemeinerung: n Stellen statt 3
– Ergibt 25 mögliche Schlüssel. Warum nicht 26?
Security - 04 Cryptology
#15
Einfache Substitution
• Caesar Verschlüsselung
– Variante der allgemeineren Methode der
einfachen Substitution
• Einfache Substitution
– Jeder Buchstabe des Alphabets durch beliebigen
anderen ersetzt
– Zwei unterschiedliche Zeichen dürfen nicht auf
dasselbe Zeichen abgebildet werden
• Bei beliebiger Zuordnung
– Knapp 26! = 403 Quadrillionen Schlüssel
Security - 04 Cryptology
Plain
Cipher
A
U
B
X
C
O
D
P
E
C
...
...
Z
Q
#16
8
Probleme dieser Verfahren
•
Verfahren sind nicht sicher
– Leicht durch Häufigkeitsanalyse zu
knacken
•
Häufigkeitsanalyse
– Basiert auf statistischer
Buchstabenhäufigkeit in Texten
– Es existieren Tabellen für viele
Sprachen
– Ähnliche Tabellen lassen sich
für Buchstabenpaare oder für
verbotene Paare aufstellen
•
Analyse der Häufigkeit von
Chiffretextzeichen
– Mit hoher Wahrscheinlichkeit lassen
sich damit Klartextzeichen zuordnen
Figure source: http://home.nordwest.net/hgm/krypto/intro.htm
Security - 04 Cryptology
#17
Homophone Substitution
• Idee
– Ordne einigen Klartextzeichen mehrere
Geheimtextzeichen zu
– Verwende auch Sonderzeichen und Ziffern
• Ziel: Verwische Häufigkeitsverteilung
– Durch geschickte Abbildung soll eine
Gleichverteilung aller Zeichen erreicht werden
– Häufigkeitsanalyse praktisch ausgeschlossen
• Problem
– Wenn auch nur zu einer Nachricht Geheim- und
Klartext bekannt sind, lässt sich der Schlüssel
leicht bestimmen
– Und meist ist ein Stück Klartext bekannt (s. später)
Security - 04 Cryptology
Plain
Cipher
A
U
A
X
B
O
C
P
D
C
E
L
E
M
E
N
...
...
Z
Q
#18
9
Transposition
• Kein Austauschen von Zeichen
– Es werden nur die Positionen der Zeichen vertauscht
• Einfaches Verfahren
– Schreibe Text zeilenweise in Fünfergruppen auf
– Lies ihn spaltenweise wieder aus
VORLE
SUNGS
ICHER
HEITI
NNETZ
ENXXX
VSIHNEOUCENNRNHIEXLGETTXESRIZX
Security - 04 Cryptology
#19
Beispiel der Transposition
• Skytale, entwickelt im 5. Jhdt. vor Christus in Sparta
– Nachricht wird auf Lederriemen um Holzstab gewickelt
– Durchmesser ist der Schlüssel
– s. auch http://de.wikipedia.org/wiki/Skytale
Security - 04 Cryptology
#20
10
Sicherheitsprobleme Transposition
• Häufigkeitsanalyse bringt hier nichts
• Aber
– „Padding“ der Nachricht mit der nötigen Menge von „X“ lässt
Rückschlüsse auf Struktur der Transposition zu
– Bei relativ kurzen Nachrichten können bestimmte Zeichen nicht
enthalten sein (welche Nachricht wurde nicht gesendet?)
– Statistische Analysen sind trotzdem möglich über
Buchstabenpaare (Bigramme), die jetzt auseinander gerissen
sind
Security - 04 Cryptology
#21
Bigramm-Substitution
• Nicht einzelne Zeichen, sondern Zeichenpaare ersetzen
– Zum ersten mal im 16. Jhdt. eingesetzt.
• Ausgangslage: 25x25 = 625 Zeichenpaare
– I=J, keine Leerzeichen, keine Kleinbuchstaben
• Es wurden entsprechend viele Sonderzeichen verwendet
– Bzw. erst einmal erfunden
• Angriff mittels verfeinerter Häufigkeitsanalyse
Security - 04 Cryptology
#22
11
Polyalphabetische Substitution
• Problem bisheriger Verfahren
– Jedem Geheimtextzeichen entspricht immer dasselbe
Klartextzeichen
• Polyalphabetische Substitution
– Mache die Substitutionsvorschrift von der Position im Text
abhängig
• Entschlüsselung solcher Verfahren wesentlich
schwieriger
– Bekanntestes Verfahren: Vigenère-Verschlüsselung
Security - 04 Cryptology
#23
Vigenère-Verschlüsselung
• Für jeden Buchstaben wie bei Caesar
– c = a + s mod 26 (s=Schlüssel)
• Verschiebung s abhängig von der Position
– Ergibt sich durch ein Schlüsselwort
EFFENBERGEFFENBERGEFF (Schlüssel)
VORLESUNGSICHERHEITIN (Klartext)
ZTWPRTYEMWNHLRSLVOXNS (Chiffretext)
• Ausprobieren:
– http://islab.oregonstate.edu/koc/ece575/02Project/Mun+Lee/Vigenere
Cipher.html
Security - 04 Cryptology
#24
12
Angriff auf Vigenère
• Bei Kenntnis der Schlüssellänge n
– Man sucht die entsprechenden n-ten Buchstaben heraus
– Entstehende Menge ist Caesar-chiffriert
• Beispiel: Schlüssellänge n = 4
– Nimm jeweils den 1., 5., 9., etc. Buchstaben
– Analysiere die Menge mittels Häufigkeitsverteilung
– Genauso beim 2., 6., 10., ...
• Unbekannte Schlüssellänge
– Experimentieren mit verschiedenen Längen
– Mit dem Computer kein größeres Problem
– Alternative: Bestimmung der „Welligkeit“ des Textes [waetjen04]
Security - 04 Cryptology
#25
Polyalphabetische Substitution: Die Enigma
•
Chiffriermaschine
– Während des 2. Weltkriegs im Funkverkehr
des deutschen Militärs eingesetzt
– Entwickelt 1923, weiterentwickelt 1926
– Rotormaschine, funktioniert
elektromechanisch
•
Bestandteile
– Tastatur mit 26 Tasten
– Lampenfeld mit 26 Lämpchen
– Zerhacker, bestehen aus einem System von
Rotoren (3 bzw. 4) und dem Reflektor
– Verschiedene Rotoren (ca.10 Stück)
– Ein Steckfeld mit 4 bis 9 Steckbrücken
Bildquelle: Deutsches Museum München
Security - 04 Cryptology
#26
13
Ansicht der Enigma
Rotorstellung
bestimmt den
Schlüssel
Anzeige des
Geheimtext
Rotoren
Lampenfeld
Tastatur
Eingabe des
Klartext
Steckfeld
Zusätzliches
Vertauschen von
Buchstaben
Bildquelle: Deutsches Museum München
Security - 04 Cryptology
#27
Rotormaschine
• Bestehen aus einer Reihe von
Rotoren
Strom
– Elektrisch isolierende Scheibe
– An gegenüberliegenden
Seiten je 26 Kontakte
– Jeder Eingangskontakt ist auf
geheime Weise mit einem
Ausgangskontakt verbunden
Strom
• Eine Scheibe: einfache
Substitution
Security - 04 Cryptology
#28
14
Rotormaschine
• Dreht man eine Scheibe nach jedem Zeichen einen Schritt weiter
– Polyalphabetische Substitution
• Kombiniert man mehrere solcher Scheiben
– Deutliche Verbesserung der Periode
– Besonders wenn jede Scheibe nach jedem Zeichen um einen anderen Betrag
weitergedreht wird
Security - 04 Cryptology
#29
Enigma Funktion und Simulation
•
http://www.matheprisma.uni-wuppertal.de/Module/Enigma/enigma-1.2.1/bin/
Quelle des linken Bildes http://www.math.miami.edu/~harald/enigma/enigma.html
Security -
04 Cryptology
#30
15
Eigenschaften der Enigma
• Buchstaben werden nicht auf sich selbst abgebildet
– Polyalphabetisch
– 2•1020 verschiedene Schlüssel
– Periode von 16900
– Chiffrierung und Dechiffrierung erfordern gleiche Ausgangsstellungen
• Schlüssel wurden durch Codebücher weitergegeben
– Pro Tag eine Grundstellung der Rotoren
– Mit dieser wurde pro Nachricht ein sog. Spruch- bzw. Sitzungsschlüssel
codiert (sehr gängiges Verfahren)
• Enigma galt als sehr sicher – wurde aber trotzdem geknackt
Security - 04 Cryptology
#31
Kryptanalyse der Enigma
• Im Laufe des zweiten Weltkriegs geknackt worden
– Ohne dass das deutsche Oberkommando dies vermutet oder erkannt hätte
– Man hielt mit Enigma verschlüsselte Nachrichten für nicht dechiffrierbar
• Gründe für die Brechung der Enigma
–
–
–
–
Maschine bzw. Maschinenteile fielen in Feindeshand
Leichtsinnsfehler bei der Chiffrierung
Eigenarten der Chiffrierung
Genialität und Ausdauer der Angreifer (Bletchley Park, UK + polnische
Wissenschaftler)
– Unmengen von Geheimmaterial verfügbar
• Betrachten wir einige Beispiele
Security - 04 Cryptology
#32
16
Verlust von Maschinenteilen/Codes
• 1927 bekam Polen eine Enigma
– Versehentlich an deutsche Firma in Polen geschickt
– Auch wenn dies zivile Maschinen waren, war nun die
grundlegende Funktionsweise bekannt
• Briten griffen schlecht bewaffnete Wetterschiffe an
– Nutzten ebenfalls die Enigma
– Gelangten an Codebücher ohne dass es dem Gegner auffiel
– Viele Nachrichten konnten zumindest im Nachhinein
gelesen werden
Security - 04 Cryptology
#33
Eigenheiten der Chiffrierung
•
•
Kein Buchstabe wird auf sich selbst •
abgebildet
Wenn man also wusste, dass ein
bestimmter Begriff im Klartext
vorkam, konnte man bereits die
Stellen ausschließen, an denen
diese Wort nicht vorkommen
konnte (negative Mustersuche).
Beispiel:
GAAHADFDEGFDTGH
WAHRHEIT
WAHRHEIT
WAHRHEIT (*)
WAHRHEIT
WAHRHEIT (*)
WAHRHEIT
WAHRHEIT (*)
WAHRHEIT (*)
•
Bekanntes Wort: Wahrheit
•
(*) gibt erlaubte Kombinationen an
Security - 04 Cryptology
#34
17
Chiffrierfehler
• Auswahl schlechter Spruchschlüssel
– „aaa“, „bbb“, Stellung der Rotoren nach dem letzten Spruch
• Problem des Verlusts von Nachrichten
– Antwort „bitte nochmal“ lässt sich fast erraten (z.B. wenn anschließend
derselbe Spruch noch einmal kommt)
– Rückfragen manchmal nicht möglich wegen Funkstille die Nachricht
musste lesbar sein
• Folge
– Spruchschlüssel wurde zweimal hintereinander am Anfang der Nachricht
übertragen
– Ein polnischer Wissenschaftler fand heraus, dass dies dann wohl der
Schlüssel sein müsse
Security - 04 Cryptology
#35
Chiffrierfehler
• Häufiges Senden von Nachrichten mit demselben
Text bzw. mit bekannten Worten
– KEINEBESONDERENVORKOMMNISSE
– HEILHITLER
– ANX („AN“ + Leerzeichen am Nachrichtenanfang)
• Senden ein- und derselben Nachricht verschlüsselt
und unverschlüsselt
– Klartext und Geheimtext bekannt
Security - 04 Cryptology
#36
18
Unterschieben von Nachrichten
• Bestimmte Nachrichten provozieren
– Durch bestimmte Aktionen konnten die Engländer den
Deutschen Nachrichten unterschieben
– Inhalt war dann a priori bekannt:
• Verminung von Häfen
• Bombardierung von Leuchttonnen
• So konnte man dann dieses Wort bzw. seine
Kodierung wieder im Geheimtext suchen
Security - 04 Cryptology
#37
• Gibt es denn ein sicheres
Verfahren?
Security - 04 Cryptology
#38
19
One-Time Pad
• One-Time Pad ist die einzige sichere Verschlüsselungsmethode
– Sie ist polyalphabetisch, allerdings mit unendlicher Periode des Schlüssels
– Der Schlüssel wiederholt sich nicht
– Wichtig: Zufällige Schlüssel, da sich sonst evtl. wieder etwas ableiten ließe
• Problem
– Der lange Schlüssel ist nicht praktikabel
– Verschlüsseln einer kompletten Festplatte mit einem One-Time Pad
• Benötigt eine zweite Platte, die man wegschließen müsste
• Da könnte man gleich die Originalplatte wegschließen
• Also kein praktisch einsetzbares Verfahren
Security - 04 Cryptology
#39
Konsequenz
• Es gibt kein 100% sicheres und praktikables
Verfahren
– Kryptanalyse hat immer Aussicht auf Erfolg
• Wir haben schon einige wichtige Vorgehensweisen
bei der Kryptanalyse kennengelernt
– Insbesondere bzgl. der Enigma
• Wir wollen dies nun ein wenig systematisieren
– Dazu zunächst die Ziele der Kryptanalyse sowie einige
Grundbegriffe
Security - 04 Cryptology
#40
20
Ziele der Kryptanalyse
• Annahme
– Das Verfahren ist bekannt
– Realistische Annahme in fast allen Situationen
– Beispiel: Caesar, DES, AES, GSM-Verschlüsselung (?)
• Ziele
– Gewinne den Schlüssel (alle Nachrichten können mitgelesen werden)
– Wenn nicht möglich
• Ermittle wenigstens den Klartext.
• Damit ist eine Nachricht dekodiert
Anhaltspunkte über den Schlüssel
– Wenn nicht möglich
• Versuche Aussagen über den Klartext zu machen
• z.B. negative Mustersuche, siehe oben
Security - 04 Cryptology
#41
Grundbegriffe und -methoden
• Geheimtextangriff
– Schlüssel bzw. Klartext werden nur mit Hilfe des Geheimtextes
gewonnen
– z.B. mit Brute-Force
• Klartextangriff
– Teil des Klartextes ist zusätzlich zum Geheimtext bekannt
– Wichtigste Methode der Kryptanalyse
Security - 04 Cryptology
#42
21
Grundbegriffe und -methoden
• Angriff mit ausgewähltem Klartext
– Angreifer gibt den Klartext vor (schiebt ihn unter)
• Angriff mit adaptiv ausgewähltem Klartext
– Der unterzuschiebende Klartext wird entsprechend der bisherigen
Ergebnisse verändert
• Geheimtext-Geheimtext-Angriff
– Die Nachricht wurde mit zwei verschiedenen Verfahren kodiert und
zweimal versandt
Security - 04 Cryptology
#43
Vorgehen des Kryptanalytikers
• Voraussetzung
– Geheimtext empfangen
– Verfahren bekannt
• Erster Schritt
– Sammle Informationen über den Klartext
•
•
•
•
Welche Sprache?
Welche Textverarbeitung? (wegen Datenrepräsentation)
Komprimierte Datei?
Sprach- oder Bildaufzeichnung?
– Ohne diese Infos wird die Analyse wesentlich schwieriger!
Security - 04 Cryptology
#44
22
Vorgehen des Kryptanalytikers (II)
• Zweiter Schritt
– Teste zunächst einfache bekannte Verfahren
(Caesar, Vigenère, ...)
– Wenn keines in Frage kommt, betrachte die möglichen Schlüssel
– Beispiel
• Bei einem maximal 6-Zeichen-langen Passwort bleiben nur etwa 300 Mio.
Möglichkeiten kein Problem für einen PC
– Zum schnellen Testen des Klartexts
•
•
•
•
Test auf verbotene Zeichen und Bigramme
Buchstabenhäufigkeiten
Wörterbuchvergleiche
Persönliche Vergleiche nur bei den vielversprechendsten Kandidaten
Security - 04 Cryptology
#45
Vorgehen des Kryptanalytikers (III)
• Oft genügt aber ein Wörterbuchangriff
– Oft werden Passworte/Sitzungsschlüssel schlecht gewählt
• Weitere Schritte
– Versuche Klartextangriffe mit vermuteten Wörtern
– Überprüfung auf schlechte Implementierung guter Algorithmen
• Beispiel für Crack-Programme
– UNIX crack, John the Ripper
– http://www.openwall.com/john/
– ...
Security - 04 Cryptology
#46
23
Modernere Verschlüsselungsverfahren
Security - 04 Cryptology
#47
Modernere Verschlüsselungsverfahren
• Erst Mitte der 1970er Jahre entwickelt
– Bit- statt zeichenweiser Verschlüsselung
– Nutzung von Konfusion und Diffusion
– Bis heute gibt es außer Brute-Force keinen bekannten Angriff
gegen diese Verfahren
• Insbesondere gehen wir ein auf
–
–
–
–
Data Encryption Standard (DES)
Advanced Encryption Standard (AES)
Diffie-Hellman
RSA (Rivest, Shamir, Adleman)
Security - 04 Cryptology
#48
24
Bitweise Verschlüsselung
• Bisherige Verfahren sind zeichenorientiert
• Mit Computern: Bitweise Verschlüsselung
– Häufigkeitsanalysen werden schwierig
– Wie sieht die Verteilung des 3. Bits aller Bytes eines Textes aus?
• Bitweise XOR-Operation
– Schlüssel und Klartext verknüpfen
– Einfach in Hardware implementierbar
– Leicht umkehrbar (erneute Anwendung)
⊕
0
1
0
0
1
1
1
0
Security - 04 Cryptology
#49
Konfusion und Diffusion
•
Konfusion
•
– Verschleierung des
Zusammenhangs zwischen
Klartext und Geheimtext
– Also Ersetzen eines Zeichens durch
ein anderes (Substitution)
Diffusion
– Verteilung der im Klartext
enthaltenen Information über den
Geheimtext
– Das Prinzip der Transposition, die
Positionen der Zeichen werden
vertauscht
• K O N F U S I O N
• D I F F U S I O N
F G H T F T I K G
I U O D F F N S I
Security - 04 Cryptology
#50
25
Verschärfung: Lawineneffekt
• Lawineneffekt
– Jedes Bit des Geheimtextes soll von jedem Bit des Klartextes und des
Schlüssels abhängen.
• Ziel
– Änderung eines Schlüssel- bzw. Klartextbits führt bei jedem
Geheimtextbit mit 50% Wahrscheinlichkeit zu einer Änderung
• Sonst können statistische Verfahren angewandt werden
Security - 04 Cryptology
#51
Strom- vs. Blockchiffrierung
• Stream Cipher (Stromchiffre)
– Es wird eine Bitfolge erzeugt, mit der der Nachrichtenstrom
verschlüsselt wird
– Optimalerweise genauso lang wie der Strom
• Block Cipher (Blockchiffre)
– Es werden Gruppen von Bits zusammengefasst und gemeinsam
verschlüsselt, oft jede Gruppe mit demselben Schlüssel
– Einfaches Beispiel: einfache Substitution wie bei Caesar
• Heute nutzen praktisch alle sehr guten Verfahren die
Blockchiffrierung
Security - 04 Cryptology
#52
26
Stream Ciphers
Security - 04 Cryptology
#53
Stream Ciphers
• Encryption
– Each byte of the plaintext is XORed with a byte from a key stream
• Decryption
– Ciphertext is XORed with the same keystream to obtain the
plaintext
Key stream
Plaintext
Key stream
⊕
Ciphertext
Security - 04 Cryptology
⊕
Plaintext
#54
27
Key Stream Generator
• Security Requirements
– Large period
– Impossible to recover key or internal state from key
stream
– Must appear to be random noise
– Must hold for all possible keys (i.e., no weak keys)
Key stream
generator
Key stream (infinite length)
Key
(bounded size)
Security - 04 Cryptology
#55
Properties and Examples
• Simple and fast
• Sender and receiver must be synchronized
• Same key stream must never be used again
• Well-known and widely used
– RC4, used by SSL, WEP, SSH, …
– A5 (v1 and v2), used by GSM
– Others: FISH, Helix, Chameleon, ...
Security - 04 Cryptology
#56
28
Ron’s Code Number 4 (RC4)
• Designed by Ronald Rivest (RSA
Security Inc.)
– Symmetric encryption algorithm
– Developed 1987
(trade secret, publicly announced 1994)
– Variable key length
– Widely used
(e.g., WEP, SSL/TLS* und SSH*)
– 5-10 x faster than DES
• Pseudo-random key stream generator
– Plaintext encrypted byte-wise
* optionally selectable as encryption algorithm.
Security - 07b Phy Data Link
#57
RC4 Key Scheduling Algorithm
• Given: Key k of length l (= 8 in this example)
– Generate initial array S of length 28
– Initialize an array S with values 0…255
– S is the internal status
• Key k is used to permute S
– This generates the initial state of S for encryption
for (i = 0 to 255)
S[i] = i
j = 0
for (i = 0 to 255)
j = (j + S[i] + k[i mod l]) (mod 256)
swap (S[i], S[j])
Security - 07b Phy Data Link
#58
29
RC4 Encryption
i = j = 0
• During encryption,
fields of S are
swapped
for each message byte M
i = (i + 1)
mod 256
j = (j + S[i]) mod 256
swap(S[i], S[j])
• Next key byte
– t: Sum of swapped
elements (mod 256)
– S[t]: next key byte
t = (S[i] + S[j]) mod 256
C = M ⊕ S[t]
• Output byte
– Message byte
XORed with S[t]
Security - 07b Phy Data Link
#59
RC4 Security
• RC4 is not vulnerable against well-known attacks
on most stream ciphers
– There are known attacks but most of them have no
practical implication
• RC4 is a stream cipher
– Vulnerable to bit-flipping attacks
• Flipped bits in ciphertext are flipped in plaintext as well
– Keys must not be used again
• C1 = M1 ⊕ K1 and C2 = M2 ⊕ K1
• C1 ⊕ C2 M1 ⊕ K1 ⊕ M2 ⊕ K1
M1 ⊕ M2
Security - 07b Phy Data Link
#60
30
Block Ciphers
Security - 04 Cryptology
#61
Block Ciphers
• Operates on fixed-length groups of bits
–
–
–
–
These are called blocks
Typical block lengths: 128, 192 or 256 Bit
Plaintext split into blocks
Blocks are encrypted individually using the same key
(maybe requires padding)
• Implementations
– DES (based on Feistel networks)
– AES (based on substitution-permutation network)
– Others: 3DES, RC6, Blowfish, CAST, IDEA, Serpent, …
Security - 04 Cryptology
#62
31
Feistel-Networks
Security - 04 Cryptology
#63
Feistel-Networks
Plaintext
• Central component of
some cryptographic
algorithms
Li
• Simple design with a
interesting property
Ri
f
⊕
Ri+1
Li+1
– Decryption is very simple
– Why?
Security - 04 Cryptology
Round Key
– Devised by Horst Feistel
(IBM) beginning of the 70s
– Encryption comprised of
several rounds
Ciphertext
#64
32
Feistel-Networks
Plaintext
• Feistel Network
Li
Ri
– Ri+1 = Li ⊕ f(Ri, keyi)
f
⊕
• Assume that f and the key are known
– f(Ri, keyi) can be calculated
Li+1
Round Key
– Li+1 = Ri
Ri+1
Ciphertext
• Rewrite Li
– Li = Li ⊕ f(Ri, keyi) ⊕ f(Ri, keyi) (Reversibility of XOR)
– Li = Ri+1 ⊕ f(Ri, keyi)
Security - 04 Cryptology
#65
Feistel-Networks
Plaintext
• Result: Li = Ri+1 ⊕ f(Ri, keyi)
Li
Ri
f
• Just apply f again to inverse encryption
– Can be applied recursively
– Until L0 and R0 are calculated
⊕
Li+1
Rundenschlüssel
– Allows to calculate Li-1 from Ri
Ri+1
Ciphertext
• Consequence: f needn’t be invertible
– Only required that f can‘t be calculated
without the key
– One can use arbitrarily complex functions
Security - 04 Cryptology
#66
33
Data Encryption Standard (DES)
Security - 04 Cryptology
#67
Geschichte von DES
• DES: Data Encryption Standard
– Ergebnis einer öffentlichen Ausschreibung des amerikanischen
National Bureau of Standards (NBS) Mitte der 70er
– Ziel: Entwurf eines einheitlichen, sicheren Verschlüsselungsalgorithmus
• Bester Vorschlag von IBM (Feistel, Coppersmith et al.)
– Modifiziert von 128 auf 56 Bit Schlüssellänge
– Unter Mitarbeit der berühmten NSA (National Security Agency)
– Bedenken wegen möglicher Unsicherheit, die nur die NSA kannte
– Bis heute kein Angriff außer Brute-Force bekannt
Security - 04 Cryptology
#68
34
Der DES-Algorithmus
• DES kodiert Datenblöcke
– 64 Bits werden in einem Schritt verschlüsselt
– Schlüssellänge ist ebenfalls 64 Bit
– Jedes 8. Bit ein Kontrollbit ist 56 Bit effektive
Schlüssellänge
• DES führt 16 Verschlüsselungsschritte aus
– Eine Runde ist ein Feistelnetzwerk bestehend aus BitPermutationen und Verteilungen
Security - 04 Cryptology
#69
Security - 04 Cryptology
#70
DES-Algorithmus
35
DES: Ein Zyklus
Ein Zyklus:
Eine S-Box:
Security - 04 Cryptology
#71
Zum Design von DES
• DES ist komplex, aber extrem hardwarefreundlich
– Beschränkt sich auf einfache Bitoperationen wie
Verschiebungen und XOR
• Aufgabe der P-Boxen
– Lawineneffekt und Ansteuerung der S-Boxen
• Aufgabe der S-Boxen
– Komplexität der Kodierung
– Sicherheit gegen versch. Verfahren der Kryptanalyse
Security - 04 Cryptology
#72
36
Sicherheit von DES
• DES ist wegen seiner kurzen
Schlüssellänge in kurzer Zeit mittels BruteForce zu brechen
– EFF baute 1998 „Deep Crack“ (250.000$) mit
1536 speziellen Krypto-Chips
– Juli 1998: DES-Code in 56 Stunden geknackt
• Neuere Analyseverfahren (differenzielle
und lineare Analyse) werden ständig
besserund stellen eine Gefährdung dar
– Deswegen wird DES ersetzt durch neuere
Verfahren mit längeren Schlüsseln wie z.B.
Triple-DES (3DES) oder AES
Security - 04 Cryptology
#73
Advanced Encryption Standard (AES)
Security - 04 Cryptology
#74
37
Advanced Encryption Standard (AES)
• Standard for encrypting electronic data
– Supersedes DES
– NIST standard U.S. FIPS PUB 197 (FIPS 197), May 2002
• Result of a competition
– 15 competing algorithms
– Winning algorithm: Rijndael
– Submitted by the two Belgian cryptographers
Vincent Rijmen and Joan Daemen
– AES uses a restricted version of Rijndael
Security - 04 Cryptology
#75
AES: Properties
• Properties
Plaintext (16 byte)
– Fixed block size of 128 bits
(16 byte)
– Variable key size
(128, 192, or 256 bits)
1
2
3
4
1
• Operates on a 4x4 matrix called
state
– Initially, state contains the
plaintext
Security - 04 Cryptology
2
3
4
State
#76
38
AES: Encryption Flow Chart
• Not based on Feistel networks
– Uses a substitution-permutation
network instead
– Encryption and decryption
comprised of multiple iteratively
applied sub-routines
– 4 different transformations
• Operates in discrete rounds
– Depends on the key size
– 10 rounds (128 bit), 12 (192 bit), and
14 (256 bit)
Key Expansion
Initial Round
− Add Round Key
Rounds
− Substitute Bytes
− Shift Rows
− Mix Columns
− Add Round Key
Final Round
− Substitute Bytes
− Shift Rows
− Mix Columns
− Add Round Key
Security - 04 Cryptology
AES: Key Expansion
• Generation of round key
– Fixed size: 128 bit (= block size)
– Generated using the so-called
Rijndael key schedule
#77
Key Expansion
Initial Round
− Add Round Key
Rounds
− Substitute Bytes
− Shift Rows
− Mix Columns
− Add Round Key
• Different schedules for 128, 192,
and 256 bit key sizes
Final Round
− Substitute Bytes
− Shift Rows
− Mix Columns
− Add Round Key
Security - 04 Cryptology
#78
39
AES: Initial Round
Key Expansion
• Only performs a single
operation
Initial Round
− Add Round Key
Rounds
− Substitute Bytes
• Add round key combines the
current state with the current
round key
− Shift Rows
− Mix Columns
− Add Round Key
Final Round
− Substitute Bytes
• See next slide
− Shift Rows
− Mix Columns
− Add Round Key
Security - 04 Cryptology
#79
Add Round Key
• Adds the current round key to state
– Addition realized as XOR
1
2
3
4
1
04 E0 48 28
2
66 CB F8 06
3
81 19 D3 26
4
E5 9A 7A 4C
State
1
⊕
2
3
1
A0 88
2
FA
3
FE 2C 39
4
17 B1 39
4
1
2
3
4
23 2A
1
A4 68 6B 02
54 A3 6C
2
9C 9F 5B 6A
76
3
7F 35 EA 50
05
4
F2 2B 43 49
Round Key
Security - 04 Cryptology
State’
#80
40
AES: A Single Round
Key Expansion
• Comprised of four subtransformations
–
–
–
–
Initial Round
− Add Round Key
Substitute Bytes
Shift Rows
Mix Columns
Add Round Key
(already known)
Rounds
− Substitute Bytes
− Shift Rows
− Mix Columns
− Add Round Key
Final Round
− Substitute Bytes
• Described individually in the
following
− Shift Rows
− Mix Columns
− Add Round Key
Security - 04 Cryptology
#81
Substitute Bytes
• Each byte in state is substituted by
another byte
• Substitution based on AES S-Box
1
Security - 04 Cryptology
3
4
19 A0 9A E9
2
3D F4 C6 F8
3
E3 E2 8D 48
4
be 2B 2A 08
1
Table image source: FIPS 197 standard
2
1
2
3
4
1
D4 E0 B8 1E
2
27 BF B4 41
3
11 98 5D 52
4
AE F1 E5 30
#82
41
Substitute Bytes: Example 19
Table image source: FIPS 197 standard
D4
Security - 04 Cryptology
#83
Shift Rows
1
• Rotates rows
individually
–
–
–
–
1st row 0 times
2nd row 1 times
3rd row 2 times
4th row 3 times
3
4
D4 E0 B8 1E
Rotate by 0 byte
2
27 BF B4 41
Rotate by1 byte
3
11 98 5D 52
Rotate by 2 byte
4
AE F1 E5 30
Rotate by 3 byte
1
• Transposition of bytes
2
1
2
3
4
1
D4 E0 B8 1E
2
BF B4 41 27
3
5D 52 11 98
4
30 AE F1 E5
Security - 04 Cryptology
#84
42
Mix Columns
• The four bytes of each column are combined
using an invertible linear transformation
– Each column is multiplied by a known matrix
• Example (key size of 128 bit)
1
2
3
4
1
1
D4 E0 B8 1E
D4
2
BF B4 41 27
BF
3
5D 52 11 98
5D
4
30 AE F1 E5
30
•
=
2
3
1
04 E0 48 28
66
2
66 CB F8 06
81
3
81 19 D3 26
E5
4
E5 9A 7A 4C
Security - 04 Cryptology
AES: Final Round
4
04
#85
Key Expansion
• Like a single round but w/o mix
columns
Initial Round
− Add Round Key
Rounds
• Finally, state contains the cipher
text
− Substitute Bytes
− Shift Rows
− Mix Columns
− Add Round Key
Final Round
− Substitute Bytes
− Shift Rows
− Add Round Key
Security - 04 Cryptology
#86
43
Block Ciphers: Mode of Operation
Security - 04 Cryptology
#87
Block Ciphers: Mode of Operation
• How to encrypt plaintext longer than the block size of a cipher
– Common block sizes: DES 64 Bits, AES 128 Bits
• Plaintext is fragmented into multiple chunks of the block size
– Cipher is applied to each chunk individually
– Different modes of operation exist (standardized by NIST)
• Some modes of operation
–
–
–
–
–
–
–
Electronic Codebook (ECB)
Cipher Block Chaining (CBC)
Propagating Cipher-Block Chaining (PCBC)
Cipher feedback (CFB)
Output feedback (OFB)
Counter (CTR)
…
44
Electronic Codebook Mode (ECB)
• Each plaintext block is encrypted individually
– Decryption works in the same way
Plaintext
Plaintext chunk #1
Key
Block Cipher
Ciphertext chunk #1
Plaintext chunk #2
Key
Block Cipher
Plaintext chunk #3
Key
Ciphertext chunk #2
Block Cipher
Ciphertext chunk #3
Security - 04 Cryptology
#89
Electronic Codebook Mode (ECB)
• Problems with ECB
– Identical plaintext blocks result in identical ciphertext blocks
– Doesn’t hide repeated pattern in the data
• Systems using ECB are often subject to so-called replay
attacks
Original image
ECB Mode
Any other mode
Image sources: Tux the Penguin, the Linux mascot. Created by Larry Ewing with The GIMP, ECBSecurity
encrypted Tux:
http://en.wikipedia.org/wiki/File:Tux_ecb.jpg,
Secure Tux: http://en.wikipedia.org/wiki/File:Tux_secure.jpg
- 04
Cryptology
#90
45
Cipher Block Chaining (CBC)
• Invented by IBM in 1976
• Each plaintext chunk is XORed with the previous
ciphertext block before being encrypted
– To make each message unique, an initialization vector
is used for the first block
• Result
– Each ciphertext block depends on all previous
plaintext blocks
Security - 04 Cryptology
#91
CBC: Encryption
• Previous ciphertext chunk is XORed with next
plaintext chunk
– Ciphertext n+1 depends on ciphertext n
Initialization Vector (IV)
Key
Plaintext chunk #1
Plaintext chunk #2
Plaintext chunk #3
⊕
⊕
⊕
Block Cipher
Ciphertext chunk #1
Key
Block Cipher
Ciphertext chunk #2
Security - 04 Cryptology
Key
Block Cipher
Ciphertext chunk #3
#92
46
CBC: Decryption
• IV must be known for decryption
– I.e., it must be transferred unencrypted with the
ciphertext
Initialization Vector (IV)
Ciphertext chunk #1
Key
Block Cipher
Ciphertext chunk #2
Key
Block Cipher
Ciphertext chunk #3
Key
Block Cipher
⊕
⊕
⊕
Plaintext chunk #1
Plaintext chunk #2
Plaintext chunk #3
Security - 04 Cryptology
#93
CBC: Properties
• Encryption
– Plaintext needs padding to a multiple of the block
size
– Not parallelizable (depends previous encryption
result)
• Decryption
– Use of incorrect IV only affects first plaintext block
– Can be parallelized (decryption of a chunk
depends only on previous ciphertext chunk)
Security - 04 Cryptology
#94
47
Propagating Cipher-Block Chaining (PCBC)
• Next ciphertext depends on previous plain- and
ciphertext
• Encryption:
Plaintext chunk #1
Initialization Vector (IV)
Key
⊕
Plaintext chunk #2
⊕
Block Cipher
⊕
Key
Ciphertext chunk #1
Plaintext chunk #3
⊕
⊕
Block Cipher
Block Cipher
Key
Ciphertext chunk #2
Ciphertext chunk #3
Security - 04 Cryptology
#95
PCBC: Decryption
• Causes ciphertext changes to propagate
indefinitely
• Decryption:
Initialization Vector (IV)
Ciphertext chunk #1
Key
Ciphertext chunk #2
Block Cipher
⊕
Plaintext chunk #1
Key
⊕
Ciphertext chunk #3
Block Cipher
⊕
Plaintext chunk #2
Key
⊕
Block Cipher
⊕
Plaintext chunk #3
#96
48
PCBC: Properties
• No official standard
– Used in Kerberos v4 and Nullsoft WASTE
– Otherwise not very common
• Issues
– If two adjacent ciphertext blocks are swapped, this
does not affect the decryption of subsequent
blocks
– No clear attack scheme known, but as a result,
PCBC is not used in Kerberos v5
Security - 04 Cryptology
#97
Cipher Feedback Mode (CFB)
• Creates a stream cipher out of a block cipher
– Block cipher is only used to create a key stream
– Allows arbitrary plaintext length <= block size
• Encryption
Initialization Vector (IV)
Block Cipher
Key
Plaintext chunk #1
⊕
Ciphertext chunk #1
Key
Plaintext chunk #2
Block Cipher
⊕
Ciphertext chunk #2
Security - 04 Cryptology
Key
Plaintext chunk #3
Block Cipher
⊕
Ciphertext chunk #3
#98
49
CFB: Decryption
Initialization Vector (IV)
Key
Block Cipher
⊕
Key
Ciphertext chunk #1
Plaintext chunk #1
Block Cipher
⊕
Key
Ciphertext chunk #2
Plaintext chunk #2
Block Cipher
⊕
Ciphertext chunk #3
Plaintext chunk #3
Security - 04 Cryptology
#99
CFB: Properties
• Allows arbitrary plaintext length <= block size
• Encryption not parallelizable, decryption is
• Loss of bytes in the ciphertext only affects two
adjacent block resynchronization possible
– Using byte-wise encryption, only two bytes are
affected
Security - 04 Cryptology
#100
50
Output feedback (OFB)
• Feedback of block cipher output instead of ciphertext (CFB)
– Avoids any error propagation
• Encryption:
Initialization Vector (IV)
Key
Plaintext chunk #1
Block Cipher
Key
Plaintext chunk #2
⊕
Ciphertext chunk #1
Block Cipher
⊕
Key
Plaintext chunk #3
Ciphertext chunk #2
Block Cipher
⊕
Ciphertext chunk #3
Security - 04 Cryptology
#101
OFB: Decryption
Initialization Vector (IV)
Key
Ciphertext chunk #1
Block Cipher
⊕
Plaintext chunk #1
Key
Ciphertext chunk #2
Block Cipher
⊕
Plaintext chunk #2
Security - 04 Cryptology
Key
Ciphertext chunk #3
Block Cipher
⊕
Plaintext chunk #3
#102
51
OFB: Properties
• Effectively creates a stream cipher
• Flipping bits in the ciphertext produces flipped bits in the
plaintext at the same location
• Allows error correcting codes to function normally even
when applied before encryption
• Key stream independent of plaintext
• Each message requires new IV
• Otherwise, the same key stream will be re-used
• Essentially removes the keystream
– Result: keystream ⊕ plaintext1 ⊕ keystream ⊕ plaintext2
– Equals: plaintext1 ⊕ plaintext2
Security - 04 Cryptology
#103
Counter Mode (CTR)
• Uses a nonce and a counter
– Similar properties as OFB
• Nonce: Number used once
– Must never be used again
Nonce & Counter
A
Key
Plaintext chunk #1
B
1
E
0
0
0
Block Cipher
⊕
Ciphertext chunk #1
Nonce & Counter
0
A
Key
Plaintext chunk #2
B
1
E
0
0
0
Block Cipher
⊕
Ciphertext chunk #2
Security - 04 Cryptology
Nonce & Counter
1
A
Key
Plaintext chunk #3
B
1
E
0
0
0
2
Block Cipher
⊕
Ciphertext chunk #3
#104
52
CTR: Decryption
Nonce & Counter
A
Key
B
1
E
0
0
Nonce & Counter
0
0
Block Cipher
Ciphertext chunk #1
⊕
A
Key
Ciphertext chunk #2
Plaintext chunk #1
B
1
E
0
0
0
Block Cipher
⊕
Nonce & Counter
1
A
Key
B
1
E
0
0
2
Block Cipher
Ciphertext chunk #3
Plaintext chunk #2
0
⊕
Plaintext chunk #3
Security - 04 Cryptology
#105
Padding
• Many modes of operation (e.g., ECB, CBC)
require that plaintext length is a multiple of
the block size
– If this is not the case
plaintext padding
• Requirements
– Any arbitrary plaintext can be adapted to a
multiple of the block size
– Uniquely invertible
– Average length expansion should be minimal
Security - 04 Cryptology
#106
53
Padding
• Different well-known options available
– Zero Padding
– Bit Padding
(ISO/IEC 9797-1 Padding Method 2)
– Byte Padding
(ANSI X.923, ISO 10126, PKCS7/RFC 5652)
• Discussed in the following
Security - 04 Cryptology
#107
Zero Padding
• Remaining bytes are filled with zero
– Not necessarily invertible
– If the plaintext ends with one or more zero bytes
impossible to distinguish between plaintext and padding
• Example for a block size of 8
Plaintext
1
2
3
4
5
1
2
3
4
5
6
7
8
9
A
B
Padded Plaintext (block size 8)
6
7
8
9
Security - 04 Cryptology
A
B
0
0
0
0
0
#108
54
Bit Padding (ISO/IEC 9797-1 Method 2)
• Add a single “1”-bit to the end of the data
– Then, if necessary, add “0”-bits until the padded data is a
multiple of the block size
• Example: 7 bit plaintext, 16 bit block size
Bit
Bit
1
2
3
4
5
6
7
1
0
1
1
0
1
1
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
Security - 04 Cryptology
#109
Bit Padding (ISO/IEC 9797-1 Method 2)
• First padding byte
– Bits: 1000 0000
Byte: 80
• Example for AES
– Fixed block size: 16 byte
– Plaintext size: 7 byte
Byte
Byte
1
2
3
4
5
6
7
1E
2B
11
00
AF
17
9B
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1E
2B
11
00
AF
17
9B
80
00
00
00
00
00
00
00
00
Security - 04 Cryptology
#110
55
Byte Padding (PKCS7, RFC 5652)
• Adds a number of bytes
• Given
– length: length of the payload
– blocksize: block size of the cipher (blocksize < 256)
• Number of bytes n to append
– n = blocksize - (length mod blocksize)
• Value v of the bytes added equals n
Security - 04 Cryptology
#111
Byte Padding (PKCS7, RFC 5652)
• Example for DES (blocksize = 8)
• Payload: ABCDEFGH
Security - 04 Cryptology
#112
56
Byte Padding (PKCS7, RFC 5652)
• Example for AES (blocksize = 16)
• Payload: ABCDEFGHIJKLMNOP
Security - 04 Cryptology
#113
Asymmetrische Verfahren
Security - 04 Cryptology
#114
57
Asymmetrische Verfahren
• Sensationelle Neuerung Mitte der siebziger Jahre
– Etablierung eines geheimen Schlüssels ohne dass
dieser ausgetauscht werden muss
• Basiert auf zwei unterschiedlichen Schlüsseln
– Diese hängenmathematisch miteinander zusammen
– Deshalb asymmetrisch, alle bisherigen Verfahren
waren symmetrisch
– Entwickelt von Diffie und Hellman 1976
Security - 04 Cryptology
#115
Die Idee von Diffie-Hellman
• Jeder Partner einer ZweierKommunikationsbeziehung
besitzt zwei verschiedene Schlüssel
– Ein privater Schlüssel, der geheim gehalten werden muss
– Ein öffentlicher Schlüssel, der jedem zur Verfügung steht
• Es ist praktisch unmöglich,
– den einen Schlüssel aus dem anderen abzuleiten,
– obwohl die beiden voneinander abhängig sind.
• Sicherheitsanforderungen
– Öffentlicher Schlüssel: Authentizität und Integrität
– Privater Schlüssel: Vertraulichkeit
Figure source: http://en.wikipedia.org/wiki/File:Whitfield_Diffie.png and http://en.wikipedia.org/wiki/File:Martin-Hellman.jpg
Security - 04 Cryptology
#116
58
Anwendung asymm. Verfahren
• Schlüsselaustausch für
symmetrische Verfahren
• Verschlüsselung und
Entschlüsselung
„normaler“ Nachrichten
• Digitale Signaturen
Signature
Security - 04 Cryptology
#117
Diffie-Hellman Algorithmus
• Verfahren zum Generieren eines gemeinsamen geheimen Schlüssels
– Erster bekannter Public-Key-Algorithmus
– Nicht direkt zum Verschlüsseln von Nachrichten verwendbar
• Beruht auf Schwierigkeit der Berechnung diskreter Logarithmen
– Hier: keine mathematischen Hintergründe
– Wir betrachten nur kurz die Ergebnisse
• Diskreter Logarithmus
– b = ga mod p
– Exponent a heißt diskreter Logarithmus von b zur Basis g
Security - 04 Cryptology
#118
59
Der Diffie-Hellman-Algorithmus
Gegeben:
q:
α:
Primzahl
Primitive Wurzel von q, α<q
Schlüsselgenerierung bei A
Schlüsselgenerierung bei B
− Wähle privates XA mit XA <q
− Berechne YA mit YA = αXA mod q
− Sende YA an B (nicht vertraulich)
− Wähle privates XB mit XB <q
− Berechne öffentliches YB mit YB = α XB mod q
− Sende YB an A (nicht vertraulich)
Generierung des geheimen
Schlüssels bei A:
Generierung des geheimen
Schlüssels bei B:
K = (YB) XA mod q
K = (YA) XB mod q
Security - 04 Cryptology
#119
Beispiel
Gewählt wurden q = 353 und α = 3
•
•
•
•
A wählt XA = 97
A berechnet
YA = 397 mod 353 = 40
Austausch der öffentlichen
Schlüssel
A berechnet
K = 24897 mod 353 = 160
•
•
•
•
B wählt XB = 233
B berechnet
YB = 3233 mod 353 = 248
Austausch der öffentlichen
Schlüssel
B berechnet
K = 40233 mod 353 = 160
Ein Angreifer könnte nun mit Hilfe von den bekannten q, α, YA und YB
versuchen, mittels des diskreten Logarithmus z.B. XB zu berechnen.
Das ist hier einfach, bei großen Zahlen aber unmöglich.
Security - 04 Cryptology
#120
60
Asymmetrische Nachrichtenverschlüsselung
Security - 04 Cryptology
#121
Asymmetrische Nachrichtenverschlüsselung
• Annahme
– A will mit B kommunizieren
• Vorgehen
– Jeder erzeugt je ein asymmetrisches Schlüsselpaar
– Wenn B an A eine Nachricht schicken will, verschlüsselt
er diese mit dem öffentlichen Schlüssel von A
– Wenn A diese Nachricht bekommt, entschlüsselt sie die
Nachricht mittels ihres privaten Schlüssels
Security - 04 Cryptology
#122
61
Ver- und Entschlüsselungsprozess
A
B
Private
Key of B
Public
Key of B
Security - 04 Cryptology
#123
Prozess des digitalen Signierens
A
B
Public
Key of A
Private
Key of A
A
Security - 04 Cryptology
#124
62
Unterschied Symmetrisch-Asymmetrisch
Symmetrisch
Asymmetrisch
Derselbe Algorithmus und Schlüssel für Verund Entschlüsselung
Je ein Algorithmus und Schlüssel für Ver- und
Entschlüsselung
Sender und Empfänger besitzen denselben
Schlüssel
Sender und Empfänger müssen jeweils einen
der zusammengehörigen Schlüssel besitzen
Schlüssel muss geheim gehalten werden
Einer der beiden Schlüssel muss geheim
gehalten werden
Unmöglich (oder zumindest sehr schwer), eine Nachricht ohne weitere Infos zu entschlüsseln
Kenntnis des Algorithmus plus mitgelesene
Nachrichten dürfen nicht ausreichen, um den
Schlüssel zu bestimmen
Zuzüglich Kenntnis des einen Schlüssels
Security - 04 Cryptology
#125
Anforderungen an einen Algorithmus
•
Entscheidende Komponente
–
•
Diffie und Hellman hatten selbst keinen Vorschlag, aber sie
konnten sagen, welche Bedingungen er erfüllen müsste
–
•
Kryptoalgorithmus, der dieses Verfahren realisiert
Siehe nächste Folie
Diese Anforderungen erfüllen heute zwei bekannte
Algorithmen
–
–
RSA und
Elliptic Curve
Security - 04 Cryptology
#126
63
Anforderungen an einen Algorithmus
1.
Es muss leicht sein („computationally easy“):
− Schlüsselpaar KUb (öffentlich) und KRb (privat) zu erzeugen
− Mit KUb und Nachricht M Geheimtext zu erzeugen:
C = EKUb(M)
− Erhaltene Nachrichten zu entschlüsseln:
M = DKRb(C) = DKRb(EKUb (M))
2.
Es muss schwer (computationally infeasible) sein:
− Aus KUb den privaten Schlüssel KRb abzuleiten
− Aus KUb und dem Geheimtext C Originalnachricht M abzuleiten
3.
Ver- und Entschlüsselungsalgorithmen können in beliebiger Reihenfolge
angewendet werden:
M = EKUb (DKRb (M)) = DKUb (EKRb (M))
Security - 04 Cryptology
#127
One-Way Functions
• Anforderungen an einen Algorithmus lassen sich
auf die Notwendigkeit der Verwendung einer
Trap-door One-Way-Funktion zurückführen
• One-Way-Function (Einwegfunktion)
– Funktion, die jedes Element aus dem
Definitionsbereich auf ein Element des Bildbereichs
– Anforderungen
• Funktionswert besitzt ein eindeutiges Inverses
• Y = f(X) ist leicht zu berechnen
• X = f-1(Y) ist schwer zu berechnen
Security - 04 Cryptology
#128
64
Trap-Door One-Way Functions
• Eigenschaften wie bei One-Way
– Aber X = f-1(Y) ist leicht zu berechnen, wenn weitere
Informationen bekannt sind
• Familie invertierbarer Funktionen fk, für die gilt:
Y = fk(X) bei bekanntem k und X leicht zu berechnen
X = fk -1(Y) bei bekanntem k und Y leicht zu berechnen
X = fk -1(Y) schwer bei bekanntem Y und unbekanntem k
Security - 04 Cryptology
#129
RSA
• Diffie-Hellman: nur
Schlüsselaustausch
– Keine Verschlüsselung/Signatur
• Der erste Algorithmus, der die
von Diffie und Hellman
postulierten Eigenschaften
erfüllte, wurde 1977 von
– Rivest (R),
– Shamir (S) und
– Adleman (A)
entwickelt.
Security - 04 Cryptology
#130
65
Eigenschaften von RSA
• Blockchiffrieralgorithmus
– Klar- und Geheimtextblöcke werden als große ganze
Zahlen aufgefasst, ebenso der Schlüssel
• Schlüssellänge ist variabel
– Typisch heute: 1024, 2048, 4096 Bit
• RSA basiert auf Eigenschaften von Primzahlen und
modularer Arithmetik
– Insbesondere wird ausgenutzt, dass es schwer ist, das
Produkt zweier großer Primzahlen zu faktorisieren
Security - 04 Cryptology
#131
RSA in Kürze
Schlüsselerzeugung:
p und q sind Primzahlen, p ≠ q
Wähle p, q
Berechne n = p × q
Berechne φ(n) = (p-1)(q-1)
Wähle eine Ganzzahl e
Berechne d
Öffentlicher Schlüssel:
Privater Schlüssel:
ggt(φ(n), e) = 1; 1 < e < φ(n)
d ≡ e-1 mod φ(n)
KU = {e,n}
KR = {d,n}
Verschlüsselung:
Klartext:
Geheimtext:
Entschlüsselung:
M<n
C = Me mod n
Geheimtext:
Klartext:
Security - 04 Cryptology
C
M = Cd mod n
#132
66
Sicherheit von RSA
• Der vielversprechendste Angriff auf RSA (außer Brute
Force) besteht in der Faktorisierung von n
• Wenn es gelingt, aus n p und q abzuleiten, dann kann
man φ(n) berechnen und damit d
• Allerdings ist Faktorisierung ein hartes Problem, das
mit zwei Stoßrichtungen angegangen wird
– Einsatz von immer mehr Computer-Power
– Immer verfeinerte Algorithmen
Security - 04 Cryptology
#133
MIPS-Jahre und Faktorisierung
• 1999 wurde eine 512-Bit-RSA-Verschlüsselung in 8000 MIPSJahren geknackt
– MIPS-Jahr: 1-Millionen-Befehle-pro-Sekunde-Rechner läuft ein Jahr
– Das sind 3 x 1013 Befehle
– Ein 1 GHz-Pentium entspricht etwa einer 250-MIPS-Maschine
• Das heißt, wenn man eine solche Faktorisierung in 3 Monaten
erreichen will, müssen 128 Rechner zusammenarbeiten
• Schlüssellängen (also die Länge von n) von 1024 bzw. 2048 Bit
gelten heute als sicher
Security - 04 Cryptology
#134
67
Literatur
•
[wobst01] Reinhard Wobst: Abenteuer Kryptologie, 3. Auflage, AddisonWesley, 2001
•
[stallings03] William Stallings: Cryptography and Network Security Principles and Practice, 3rd ed., Prentice Hall, 2003
•
[singh99] Simon Singh: Geheime Botschaften, Hanser, 1999
•
[waetjen04] Dietmar Wätjen: Kryptographie, Spektrum Akademischer
Verlag, 2004
•
[schneier06] Bruce Schneier: Angewandte Kryptographie, Pearson Studium,
2006
•
[enigma] Detaillierte Enigma-Einführung:
http://www.codesandciphers.org.uk/enigma/
Security - 04 Cryptology
#135
68

Similar documents