D. Kippenhahn: Verschlüsselte Botschaften, Rowohld
David Kahn: The Codebreakers, Scribner NY 1997
Bruce Schneier: Applied Cryptography
Klaus Schunek: Kryptographie
Script
Grundbegriffe
Was ist Kryptologie?
Kryptologie ist eine Wissenschaft, die sich mit Methoden der Verschlüsselung und damit verwandte Verfahren befasst.
Personen: Kryptologen -> High-End Mathematiker
Kryptologie
Kryptographie
Kryptoanalysis
Kryptographie bezeichnet den Zweig der Kryptologie, der sich mit der Erstellung und dem Design kryptologischer Algorithmen befasst. In der Kryptoanalyse geht es um das nicht-autorisierte Brechen von Verschlüsselungen.
Der Kryptologie liegt ein einfaches Kommunikationsmodell zugrunde:
Alice und Bob wollen vertraulich kommunizieren, das heißt eine Nachricht die Alice sendet, soll nur von Bob gelesen werden können (und umgekehrt).
Telefonverbindung
Email-Austausch
Internetverbindung
Speichervorgang mit (viel) späterem Lesezugriff.
Ein Angreifer in diesem Modell heißt Eve (von eavesdropping = lauschen). Ziel ist es, die Kommunikation (passiv oder aktiv) zu beeinflussen.
Bei der Kryptographie geht es um folgendene Punkte:
Geheimhaltung. Ein kryptographisches System, das Geheimhaltung gewährleistet, verhindert die Entnahme von Informationen durch eine dritte, nicht autorisierte Partei währen der Übertragung über eien unsicheren Kommunikationsverlauf. Der Sender einer Nachricht kann sicher sein, dass nur der legitime Empfänger die Nachricht lesen kann.
Authentizität. Ein kryptografisches System, das Authentizität gewährleistet, verhindert das nicht-autorisierte Einschleusen einer Nachricht in einen unsicheren Kommunikationskanal. Der Empfänger kann sicher sein, dass die Nachricht vom angegebenen Sender stammt.
Digitale Signatur. Der Empfänger einer Nachricht kann eine neutrale Partei davon überzeugen, wer die Nachricht verfasst hat.
Integrität. Ein Kryptografisches System, aus Integrität gewährleistet, verhindert die nicht-autorisierte Manipulation des Inhalts einer Nachricht, während der ÜBertragung, über einen unsicheren Kanal.
Verbindlichkeit. Sender und Empfänger soll es nicht möglich sein, im Nachhinein zu behaupten, die Nachricht nicht gesendet/empfangen zu haben.
Weiter Begriffe:
Identifikation bedeutet die Zuordnung einer Identität zu einem Subjekt z.B. Benutzername.
Authentifizierung. Verifikation der Gültigkeit einer Tatsache -> Passwort/Primzahlen
Datenschutz. Hier geht es um den Umgang, mit personenbezogenen Daten. Hier geht es um die Frage, ob personenbezogene Daten überhaupt erhoben werden dürfen, und/oder verarbeitet werden/anonymisiert.
Datensicherheit. Hier geht es um den Schutz von Daten (personenbezogen oder nicht)
Definition: Der Klartext ist die Nachricht, die durch ein geeinetes Verfahren in eine Form transformiert wird, dass eine Informationsentanhme durch eine 3. Partei nicht möglich ist.
Klartext zu…
natürliche Sprachen
Morse Zeichen
Bitfolgen
Es gibt zwei grundlegende Verfahren, eine Nachricht vor Informationsentanhme zu schützen:
Kryptographische Verfahren (“unlesbar machen”)
Steganographie. Hier geht es um ein Vefahren, die eigentliche Existenz (nicht dem Inhalt) einer Nachricht verstecken. Heute digitale Wasserzeichen.
Das Verfahren, einen Klartext in eine Form zu transformieren, dass die Informationsentnahme nicht möglich ist, heisst Verschllüsselung, oder Chiffrieren, eine verschlüsselte Nachricht heißt Chiffretext. Codieren, hat eine andere Bedeutung, nämlich Umwandlung in eine andere Form, damit sie geeignet verarbeitet werden können.
Die Umkehrung heißt Entschlüsselung oder Dechffrierung. Ein Kryptographischer Algorithmus (oder auch Chiffre) ist das mathematische Verfahren, welches den Klartext im Chiffretext umwandelt. Üblicherweise verwenden heutige krypto. Verfahren einen Schlüssel K. Das ist ein bestimmer Wert aus einem Schlüsselraum.
z.B. K = 128Bit Schlüsselraum
Sender und Empfänger benötigen den gleichen Schlüssel K zum Ver-/Entschlüsseln (daher symmetrische Verschlüsselung)
Symmetrische Verfahren haben (alle) drei grundsätzliche Probleme
Key Exchange Probleme
Der Schlüssel K muss auf sicherem Weg von Alice zu Bob gelangen.
Key Management Problem
Bei n Parteien (n*(n-1))/2 Schlüssel benötigt
Mit symmetrischen Verfahren ist es nicht möglich, digitale Signatur zu realisieren. Es gibt kein eindeutiges Indentifikationsmerkmal für den Sender einer Nachricht.
1976 Whitfield Diffie + Martin Hellman: “New Directions in Cryptography” => Public Key Kryptographie oder Asymmetrische Verschlüsselung
Szenario 1: Alice will Bob eine vertrauliche Nachricht zukommen lassen (ohne Key-Exchange)
Bob erzeugt zwei Schlüssel, K_priv, K_publ. K_priv ist nur Bob bekannt. K_pub kann veröffentlich werden.
Alice besorgt sich K_pub von Bob
Alice verschlüsselt den Klartext mib Bobs K_pub -> Chiffretext
Chiffretext geht an Bob
(Bedingung: D_K_pub (E_K_pub(M)) != M)
Bob entschlüsselt das Chiffrat mit seinem K_priv
(Bedingung D_K_priv [ E_K_pub(M)] == M)
Key Exchange-Problem gelöst, da Alice und Bob keinen Schlüssel über einen sicheren Kanal austauschen müssen!
Key Management-Problem gelöst, da ein Schlüssel ausreicht (K_pub), so dass beliebig viele Parteien vertraulich mit Bob kommunizieren können.
In der Praxis: Public-Key-Verfahren sind etwa 1000x langsamer als symmetrische Verfahren -> man verwendet daher sog. Hybridverfahren
D.h. Public-Key Verfahren werden genutzt, um zwischen Sender und Empfänger einen “Sitzungsschlüssel” auszutauschen. Die Nutzdaten werden dann symmetrisch verschlüsselt, da Sender + Empfänger einen gemeinsamen Schlüssel besitzen.
Szenario 2: Alice will Bob ein signiertes Dokument zukommen lassen.
Alice erzeugt ein Schlüsselpaar (K_priv, K_pub)
Alice “verschlüsselt” den Klartext mit ihrem K_priv (den nur Alice hat). -> Chiffrat
Idee: D_K_pub [E_K_priv(M)] = M
Chiffrat geht an Bob
Bob besorgt sich K_pub und dechiffriert das erhaltene Chiffrat
Entsteht Klartext, dann ist auch für eine neutrale 3. Partei gezeigt, das ALice die Nachricht verfasst hat. In der Praxis geht’s etwas anders:
Klartext --> Hash Alg. --> Hash Wert
Das Haswort garantiert die Integrität, d.h. das ist das Instrument um zu prüfen, ob der KLartext während der ÜBertragung manipuliert wurde.
Bob erhält Klartext und Signierter Hash Wert
Klartext -> Hash-Alg -> Hash Wert
Sign Hw Entschlüsseln
Wenn Hashwerte übereinstimmen alles ok.
Es gibt Dutzende symmetrische Verfahren, z.B.
AES = Advanced Encryption Standard (von Joan Daemon und Vince Djiman) zertifiziert von NIST
DES = Vorgänger von AES, stammt von IBM
Blowfish/Twofish von Bruce Schneier
IDEA
Lucifer
…
Public-Key-Verfahren:
RSA = Rivest, Shamir, Adleman
DH-Key-Exchange (Diffie-Hellmann)
ElGamal-Verfahren (Signatur)
Elliptische Kurven Kryptographie
Sowohl symmetrische als auch asymmetrische Verfahren können in Form von Block-Chiffren oder Strom-Chiffren eningesetzt werden. Bei Blockchiffren werden Bitblöcke (z.B. 64 Bit) in einem Vorgang verschlüsselt in einem 64 Bit Chiffreblock. Klartext -> aufteilen in n 64 Bit Blöcken. Bei Stromchiffren (bzw. bei WLAN) wird Zeichen für Zeichen verschlüsselt (bitweise/byteweise).
Es gibt in den meisten Kryptografischen Systemen zwei grundlegende Operationen wie Klartext in Chiffretext transformiert wird.
Substitution: Bei einer Substitutionsoperation wird ein Klartextzeichen (oder ein Klartextblock) durch ein anderes Zeichen ersetzt. Die Position des Zeichens/Blocks bleibt erhalten.
Transposition (Permutation, Vertauschung): Transpositionsoperationen vertauschen die Reihenfolge der Zeichen, d.h. die Position der Klartextzeichen unterhalb des Texts. Die Form bleibt erhalten.
Moderne Verfahren benutzen eine Vielzahl von Substitutions- bzw. Transpositiosoperationen.
Definition: (Claude Shannan 1948): Ein Kryptosystem ist ein Fünf-Tupel K = (P,C,K,E,D).
P: Endliche Menge, Klartext Alphabet
C: Endliche Menge, Chiffretextalphabet
K: Endliche Menge, Schlüsselraum
E: Zu jedem Wert k e K (zu jedem Schlüssel k), gibt es einen Verschlüsselungalgorithmus ek e E und einem zugeordneten Entschlüsselungsalgorithmus.
Also: Das Design eines Kryptosystems erforder die Spezifikation von fünf Größen
Klartextalphabet
Chiffretextalphabet
Schlüsselraum
Verschlüsselungsverfahren
Entschlüsselungsverfahren
In der heutigen Kryptographie wird in der Regel streng auf das KERCKHOFFS-Prinzip geachtet (1883). “Die Sicherheit eines Kryptosystems darf niemals von der Geheimhaltung des Verschlüsselungsalgorithmus abhängen, sondern ausschließlich von dem Geheimhalten des Schlüssels.”
kurz: Who is who in der Kryptografie (keinesfalls vollständig)
ANSI (American National Standars Institute)
ASC X9 (Arbeitsgruppe), Empfehlungen für sichere Finanztreuaktionen
NSA
GCHQ Government Communication Headquaters
NIST National Institute of Standards and Technology
FIPS
iSO International Organisation for Standardization
IEEE
NESSIE-Projekt New European Schemes for Signatures, Integrity and Encryption
Bruce Schneier
Ron Rivest MIT
BSI Bundesamt für Sicherheit in der Informationstechnologie
Phil Zimmermann -> PGP = Pretty Good Privacy
Klassische Symmetrische Verschlüsselungsverfahren
Klartext wird in Kleinbuchstaben geschrieben
CHIFFRETEXT WIRD IN GROßBUCHSTABEN geschrieben
Im Klartext werden Leerzeichen und Interpunktionszeichen weggelassen
Die Klartext- und Chiffretextzeichen werden durch die Zahlen von 0 bis 25 dargestellt
Die Shift-Chiffre (oder Cäsar-Chiffre)
Das Shift-Chiffre ist eine sog. monoalphabetische Chiffre, d.h. das Klartextalphabet wird genau auf ein Chiffretextalphabet abgebildet. Dies hat zur Folge, dass die statistische Struktur des Klartexts erhalten bleibt.
Andere Frage: Hilft es, wenn man ein Klartext 2x hintereinander und 2 verschiedenen Schlüsseln verschlüsselt, also, erhöht sich dadurch die Sicherheit? Hier nicht, da das Hintereinanderausführen von zwei Shift-Chiffren mit den Schlüsseln K_1,K_2 wie einer Verschlüsselung mit K_1+K_2.
Die Affine Chiffre
Beispiel, Klartext: Wirtschaftsinformatik
(α,β)=(5,12)
ggT(5,26)=1
w↦22↦122
Vorlesung 2
Die Vigenère-Chiffre
Die Shift- und die affine Chiffre sind Beispiele von monoalphabetischen Chiffren, d.h. mit der Wahl eines Schlüssels wird jedes Klartextzeichen auf genau ein Chiffretextzeichen abgebildet (Eigenschaft, dass die statistische Eigenschaft des Klartexts auf dem Chiffretext übertragen wird)
Vigenère-Chiffre (1586) veröffentlicht, galt langge als nicht brechbar bis zu den 1860ern, Friedrich Kasiski, Charles Babbage.
Definition:
Sei eine positive ganze Zahl und M=C=K=(Z26)m =Z26⋅Z26⋅⋯⋅Z26
Für einen festen Schlüsselwert K⃗=K.... …
Beispiel:
Alice und Bob vereinbaren ein Schlüsselwort jamesbond .
Nun ist m = 9 wegen 9 unterschiedlichen Zeichen.
jamesbond --> 9 0 12 4 18 1 13 13 3 = k⃗.
Klartext: treffenummitternacht
t r e f f e n u m m i t t e r n a c h t
19
t
r
e
f
f
e
n
u
m
m
i
t
t
e
r
n
a
c
h
t
19
17
4
5
5
4
13
20
12
12
8
19
19
4
17
13
0
2
27
19
9
0
12
4
18
1
14
13
3
9
0
12
4
18
1
13
13
3
9
0
2
17
16
9
23
5
1
7
15
21
8
5
23
22
18
1
13
5
16
19
C
R
Q
J
X
F
B
H
P
V
I
F
X
W
S
B
N
F
Q
T
In fett: Effekt von polyalphabetischen Verfahren. Ein Zeichen kann auf verschiedene Zeichen abgebildet werden.
In kursiv: n wird auf B abgebildet. Das Alphabet wiederholt sich. Der erste Schritt zum knacken wäre also die Schlüssellänge (Auch benannt Periode, wann es sich wiederholt) rauszufinden.
Entschlüsselung: Mit gleichem Schlüsselwort einfach abziehen (xi−ki)mod26
Schlüsselraum: ∣K∣=26⋅26⋅…⋅26=26m k⃗=(k1,k2,…,km)
z.B. m = 5 --> 265 Schlüssel ~ 1.2⋅107 Schlüssel.
Die Vigènere-Chiffre ist eine polyalphabetische Chiffre, weil durch die Wahl des Schlüssels k⃗ (ohne Buchstabenwiederholung) eine Klartextzeichen auf m mögliche Chiffrezeichen abgebildet wird.
Auswahl eines Schlüssels:
Wähle eine Zahl, z.B. n = 3; der Schlüssel ist eine n×n-Matrix M,
deren Einträge Zahlen mod 26 sind. M:
Dazu benötigt man die zu M
inverse Matrix M−1, die wir N nennen, diese erfüllt: M⋅N=I3x3mod 26 I =
Identitätsmatrix, Hauptdiagonale alle Werte 1
detM=40+132+108−54−64−165=−3=23 mod 26 M−1=detM1⋅(inverse matrix berechnen, Laplace auf M)
WTH = 22, 19, 7
(22,19,7)⋅M−1=(1,4,17)=b e r
Eine wichtige Eigenschaft von Blockchiffren ist die Diffusion (Shamron); d.h. die Änderung eines Klartextzeichens hat zur Folge, dass sich mehrere Chiffretextzeichen ändern.
Beispiel: a a b – 0 0 1
–> (0,0,1)⋅M
–> (11,9,8) --> L, J, I
a b b – 0 1 1
–> (0,1,1)⋅M
–> (15,14,14) --> P, O, O
Diese Eigenschaft müssen heutige Block-Chiffren (DES, AES) aufweisen. Dadurch wird die statistische Struktur von Klartextblöcken verschleiert.
Rotor-Maschinen
Das Ende der Fahnenstange polyalphabetischer Chiffren sind Rotormaschinen.
Abschtzung des Schlüsselraums:
Drei Walzen à 26 Positionen: 263 Positionen = 17576 Möglichkeiten.
Set besteht aus 5 Walzen. 35 = 10 Möglichkeiten
3! Möglichkeiten, die drei Walzen in den Slots einzugeben = 6
Steckbrett: Möglich z.B. 5 Buchstabenpaare zu tauschen A⟷F,C⟷L,K⟷M
Bei 5 Vertauschungen sind das 5!1⋅⟮226⟯⋅224⋅…=295.269.975 Möglichkeiten
1 x 2 x 3 insgesamt 3.113.799.048.360.000 Möglichkeiten!!
Mathematische Grundlagen
Algebraische Strukturen
N = Menge der natürlichen Zahlen = {0, 1, 2, …} Z = Menge der ganzen Zahlen = {-2, -1, 0, 1, 2}
Eine binäre Operation o auf einer Menge ist eine Abbildung
o:A⋅A→A
(a,b)↦a o b
Da a o b ∈A heißt A abgeschlossen unter o
Halbgruppen
Eine Halbgruppe ist ein Paar (A,o), A ist eine Menge, o bingäre Abbilgund, und es gilt: a o (b o c)=(a o b) o c Assoziativgesetz
Bsp:(N,+),(N,×)
…
Eine Halbgruppe mit einem neutralem Element heißt Monoid.
Gruppen
Eine Gruppe ist eine Halbgruppe (A,o) mit:
Es existiert ein neutrales Element IA∈A mit a o a−1=a∀a∈A
∀a∈A existiert ein Element a o a−1=IA⋅Inverses
Falls (A,o) eine Gruppe ist und o ist Kommutativ, d.h. a o b=b o a
dann heißt (A,o) ABELsche Gruppe.
Beispiele: (Z,+) ist eine ABELsche Gruppe.
Zu jedem a∈Z gibt es ein a−1=−a∈Z
mit a+(−a)=0 neutrales Element
Z,x ist keine Gruppe, warum?
assoziativ erfüllt, aber …
(Q∖{0},×) ist eine ABELsche Gruppe
Die Menge der Shift-Chiffren bilden unter den Operationen “Hintereinanderausführung” eine ABELsche Gruppe.
Auf der Menge Z sind zwei binäre Operatoren definiert, nämlich Addition und Multiplikation.
Das Tripel (Z,+,×)
Ein Ring ist ein Tripel (A,+,X) mit
(A,+) bildet eine Gruppe
(A,×) --> × ist assoziativ, × hat ein neutrales Element, aber kein Inverses.
Es gilt das Distributivgesetz
a×(b+c)=a×b+a×c
(a+b)×c=a×c+b×c∀a,b,c,∈A
Bsp: (Z,+,×) bildet ein Ring.
Die Menge aller Polynome in x mit Koeffizienten in einem Körper bildet einen Ring, den Polynomring.
Ein Körper (englisch field) ist eine nichtleere Menge A mit zwei binären Operationen, Addition (+) und Multiplikation (×) mit folgenden Axiomen:
∀a,b∈A gilt das Assoziativgesetz
∀a,b∈A gilt das Kommunitativgesetz
∀a,b∈A gilt das Distributivgesetz
Neutrale Elemente: ∀a∈A:
Existiert ein Element 0A∈A mit a+0A=a
Existiert ein Element 1A∈A mit a×1A=a
Inverse Elemente: ∀a∈A:
Existiert ein Element −a mit a+(−a)=0A, Additives Inverses
Existiert ∀a∈A∖{0A} ein
Element a−1
mit
a×a−1=1A. (multiplikatives Inverses)
Lemma:
Für jeden Körper K gilt:
a⋅0=0∀a∈K
Wenn a⋅b=0→a=0 oder b=0
…
Es gibt weiterhin sogenannte endliche Körper (Galois-Felder).
→(Zp,(a+b) mod p,(a×b) mod p) bildet einen Körper.
Zp={0,…,p−1} , p Primzahl
Elementäre Eigenschaften von Zahlen
Eine Zahl b≠0 heißt Teiler von a∈Z, (umgekehrt: a∈Z heißt Vielfaches von b) falls a=m⋅b,m∈Z.
Oder: b teilt die Zahl a ohne Rest: b∣a
Beispiel: a = 24, Teiler: 1, 2, 3, 4, 6, 8, 12, 24
Es gilt:
Wenn a∣1→a=±1
Wenn a∣b wird b∣a→a=±b
Jedes b≠0 ist Teiler von 0
Wenn b∣g wird b∣h→b∣(m⋅g+n⋅h).
Anmerkung: Es gibt vollkommene Zahlen (perfect numbers). a heißt vollkommen, wenn sie als Summe
ihrer echten Teiler geschrieben werden kann: 28=1+2+4+7+14
Eine Zahl p∈Z,p>1 heißt Primzahl genau dann, wenn die einzigen Teiler von p±1,±p sind. Eine Zahl n, die keine Primzahl ist, heißt zusammengesetzte Zahl.
Satz: Es gibt unendlich viele Primzahlen.
Beweis - der klassische Widerspruchsbeweis (Euclid):
Annahme: Es gibt nur endlich viele Primzahlen
Dann kann man diese aufzählen: P={2,3,5,7,…,Pn}
Bilde die Zahl
q=2⋅3⋅5⋅7⋅…⋅Pn
q
wird durch alle Pi
geteilt, ohne Rest.
Betrachte aber q+1
Durch welche Primzahl man q+a auch teilt, es bleibt immer der Rest 1.
Kein Element aus P ist
Teiler von q+a
→q+1 ist Primzahl oder hat einen anderen Teiler, der nicht in P liegt.
→ Widerspruch zur Annahme → Es gibt unendlich viele Primzahlen.