Regine Schreier 20.04.2016

Werbung
Regine Schreier 20.04.2016




Kryptographie
Verschlüsselungsverfahren
Private-Key-Verfahren und Public-Key-Verfahren
RSA-Verfahren
◦ Schlüsselerzeugung
◦ Verschlüsselung

◦ Entschlüsselung
Digitale Signatur mit RSA
2
Lehre der Datenverschlüsselung
Schutzziele
Vertraulichkeit
Integrität
Authentizität
Zurechenbarkeit
3
Definition
Ein Verschlüsselungsverfahren oder Kryptosystem ist ein
Fünftuppel (Ƥ,Ƈ,Ƙ,Ɛ,Ɗ) mit folgenden Eigenschaften:
1) Menge Ƥ Klartextraum (Plaintext), Elemente Klartexte
2) Menge Ƈ Chiffretextraum (Ciphertext),
Elemente Schlüsseltexte oder Chiffretexte
3) Menge Ƙ Schlüsselraum (Key), Elemente Schlüssel
4) Familie von Funktionen Ɛ={Ek: Ƥ → Ƈ | k∊Ƙ},
Elemente Verschlüsselungsfunktionen
5) Familie von Funktionen Ɗ={Dk: Ƈ → Ƥ | k∊Ƙ},
Elemente Entschlüsselungsfunktionen
6) ∀e∊Ƙ ∃d∊Ƙ ∀p∊Ƥ : Dd(Ee(p))=p
4
Grundsätzliche Idee
Alice möchte die Nachricht m∊Ƥ vertraulich an Bob schicken
Übermittlung
von c
Benötigt e∊Ƙ
Berechnet Chriffretext c=Ee(m)
Benötigt d∊Ƙ
Berechnet Klartext m=Dd(c)
5
Beispiel „Verschiebungschiffren“
Idee: ABC → DEF „Verschieben um 3“
Klartext-, Chiffretext- und Schlüsselraum ist ∑={A,B,C,…,Z}

Identifizierung von Buchstaben mit Zahlen ermöglicht das
Rechnen mit Buchstaben
A B C D E F G H I
0
1

2
3
4
5
6
∑= ℤ/26ℤ
7
8
J K L M N O P Q R S T U V W X Y Z
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
6
Definition:
Kongruenz und Restklassen
a ist kongruent zu b modulo n mit a,b∊ℤ und n∊ℕ, wenn n die
Differenz b-a teilt. Schreibweise: a ≡ b mod n.
Äquivalente Aussagen:
1) a ≡ b mod n
2) a = b+kn mit k∊ℤ
3) a und b lassen bei Division durch n denselben Rest.
Kongruenz modulo n ist eine Äquivalenzrelation.
Äquivalenzklasse [a] = {b∊ℤ | b ≡ a mod n} = a+nℤ heißen
Restklassen von a mod n.
[a]+[b]≔[a+b]
[a]•[b]≔[a•b]
7
Beispiel „Verschiebungschiffren“
A B C D E F
0
1
2
3
4
5
G H I
6
7
8
J K L M N O P Q R S T U V W X Y Z
9
10
Identifizierung ∑ = ℤ/26ℤ
11
12
13
14
15
16
17
18
Ver- & Entschlüsselungsschlüssel ist [e] ∊ ℤ/26ℤ
Verschlüsselungsfunktion E[e] : [x] ↦ [x+e]
Entschlüsselungsfunktion D[e] : [y] ↦ [y-e]
KRYPTOGRAPHIE
E[5]
PWDUYTLWFUMNJ
19
20
21
22
23
24
(z.B. K=[10])
25
([e]=[5])
([10] ↦ [15])
([15] ↦ [10])
D[5]
KRYPTOGRAPHIE
8
Idee
e und d stimmen überein bzw. d lässt sich aus e leicht berechnen
(symmetrisches Kryptosystem)
Ablauf

Alice und Bob tauschen Schlüssel über eine sicher Leitung aus

Alice verschlüsselt m zu c=Ee(m)

Übertragung von c

Bob entschlüsselt c zu m=Dd(c)
Problematik
Verteilung und Verwaltung der Schlüssel
9
Annahme
In einem Netzwerk mit n Teilnehmern wollen alle geheim
miteinander kommunizieren können.
1. Möglichkeit
Je zwei Teilnehmer tauschen Schlüssel geheim aus
=>
Schlüssel müssen geheim übertagen werden
71,7 Millionen Internetnutzern in Deutschland (Stand 2015)
=> Geheimer Austausch von 2,6•1015 Schlüssel
2. Möglichkeit
Zentrale Stelle für Kommunikation
=> Jeder tauscht Schlüssel mit zentralen Stelle aus
10
Idee
e und d sind verschieden und d lässt sich nicht mit vertretbarem Aufwand
aus e bestimmen - asymmetrisches Kryptosystem.
Dazu nutzen Public-Key-Verfahren schwer zu lösende Berechnungsprobleme aus der Zahlentheorie.
Ablauf

Bob (Empfänger) veröffentlicht e und hält d geheim

Übertragung von c



Alice (Absender) nutzt öffentlich zugängige e und verschlüsselt m zu
c=Ee(m)
Bob entschlüsselt c zu m=Dd(c)
e öffentlicher Schlüssel (public key), d geheimer Schlüssel (private key)
11
Öffentliche Schlüsselverzeichnisse
Name
Öffentlicher Schlüssel
Regine
26144365903653672949
Bob
…
39620737184385387456
…
Problematik
Sicherheit des öffentlichen Verzeichnis
„Man muss sicher gehen können, dass der im öffentlichen
Verzeichnis stehende Schlüssel auch tatsächlich der öffentliche
Schlüssel des Empfängers ist und dieser nicht manipuliert wurde.“
=>
Digitale Signaturen
12



Private-Key-Verfahren gelten als sehr sicher, beinhalten
jedoch die Problematik der Verteilung und Verwaltung
der Schlüssel
Public-Key-Verfahren vereinfachen
Schlüsselmanagement
Bekannte Public-Key-Verfahren sind nicht so effizient
im Vergleich zu vielen Private-Key-Verfahren
=>
In Praxis häufig Kombination beider Verfahren
Beispiel: Hybrid-Verfahren
13



Erste und bis heute wichtigste Public-Key-Verfahren
Erfinder (1978)
Ron Rivest
Adi Shamir
Len Adleman
Zugrundeliegendes zahlentheoretische
Berechnungsproblem:
Zerlegung großer Zahlen in Primfaktoren
14
Definition
Eine natürliche Zahl p>1 heißt Primzahl, wenn sie genau 2
positive Teiler besitzt, nämlich 1 und p.
Man sagt a teilt n, wenn es eine ganze Zahl b gibt mit n=a⋅b.
a heißt Teiler von n.
Hauptsatz der elementaren Zahlentheorie
Jede natürliche Zahl a>1 kann als Produkt von Primzahlen
geschrieben werden.
Bis auf die Reihenfolge sind die Faktoren in diesem Produkt
eindeutig bestimmt.
15
Bob (Empfänger) wählt zufällig Primzahlen p und q und
berechnet das sogenannte RSA-Modul n=p⋅q




p und q werden etwa gleichgroß gewählt
p und q mit Bit-Länge 256
=> n mit Bit-Länge 512 (Mindestlänge)
Experimentelle Untersuchungen zeigen: Langfristige
Sicherheit erfordert Bit-Länge von 1024 bzw. 2048
Zufällige Auswahl ein Primzahl mit fester Bit-Länge erfolgt
über mathematisches Verfahren
16
Bob (Empfänger) wählt eine natürliche Zahl e mit
(1)
(2)
1 < e < ɸ(n) = (p-1)⋅(q-1)
ggT(e,ɸ(n)) = 1
Eulersche Phi-Funktion


ɸ : ℕ → ℕ mit ɸ(n) ≔ |{a∊ℕ | 1≤a≤n und ggT(a,n)=1}|
Falls p und q teilerfremd gilt: ɸ(p⋅q) = ɸ(p)⋅ɸ(q)
=> ɸ(n) = ɸ(p⋅q) = ɸ(p)⋅ɸ(q) = (p-1)⋅(q-1)
17
Auswahl von e

e wird so gewählt, dass Verschlüsselung möglichst effizient
(bzgl. Rechenaufwand), aber dennoch sicher ist

Nach Voraussetzung ist 1<e

=> e sollte nicht beliebig groß werden
e≠2, da ɸ(n)=(p-1)⋅(q-1) gerade und somit ggT(2,ɸ(n))=2
=> kleinste mögliche e ist e=3
Low-Exponent-Attacke
=> e = 216+1 = 65537 üblich
18
Bob (Empfänger) bestimmt natürliche Zahl d mit
(1)
(2)


1 < d < ɸ(n) = (p-1)⋅(q-1)
d⋅e ≡ 1 mod ɸ(n)
d existiert
d wird über den erweiterten Euklidischen Algorithmus
bestimmt
=>
Öffentlicher Schlüssel (n,e) mit n RSA-Modul und e
Verschlüsselungsexponent
Bob veröffentliche (n,e)
Geheime Schlüssel d mit d Entschlüsselungsexponent
19
Alice (Absender) verschlüsselt Klartext m zum Chiffretext
c mittels Verschlüsselungsfunktion
E(n,e) : Ƥ → Ƈ
E(n,e)(m) = me mod n = c
Alice übermittelt c an Bob


Klartextraum Ƥ = {m∊ℕ | 0 ≤ m <n}
Üblich ist n mit Bit-Länge 1024 und e=65537
=> Berechnung von sehr großer Zahlen nötig
=> Verfahren „Schnelle Exponentiation“
20
Bob entschlüsselt Chiffretext c zurück zum
Klartext m mittels der Entschlüsselungsfunktion
Dd : Ƈ → Ƥ
Dd(c) = cd mod n
Denn es gilt: m ≡ cd mod n
21
Ziel:
Tim muss sichergehen können, dass Lena tatsächlich der
Urheber eines Dokuments ist
Ablauf:



Schlüsselerzeugung
Lena erzeugt die Schlüssel (n,e) und d
Lena veröffentlicht (n,e)
Signaturerzeugung
Lena berechnet für das Dokument m die Signatur s = md mod n
Lena verschickt m und s
Verifikation
Tim besorgt sich den öffentlichen Schlüssel (n,e)
Tim überprüft, ob m = se mod n
22
Buchmann, J. (2010). Einführung in die
Kryptographie (5. Auflage).
Heidelberg: Springer.
23
Herunterladen