Kryptografische Protokolle - Prof. Dr. Christoph Karg

Kryptografische Protokolle
Lerneinheit 4: Schl¨usselvereinbarung
Prof. Dr. Christoph Karg
Studiengang Informatik
Hochschule Aalen
Sommersemester 2015
31.5.2015
Einleitung
Einleitung
In dieser Lerneinheit werden Protokolle zur Vereinbarung von
Schl¨usseln durchgenommen.
Die Lerneinheit gliedert sich in folgende Abschnitte:
• Diffie-Hellman Schl¨usselaustausch
• Berechnung von erzeugenden Elementen
• Sichere Primzahlen
• No-Key Protokoll von Shamir
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
2 / 23
Diffie-Hellman Protokoll
Diffie-Hellman Protokoll
• Das Protokoll wurde von Whitfield Diffie und Martin Hellman im
Jahr 1976 vorgestellt
• Alice und Bob handeln einen Schl¨ussel aus, ohne diesen zu
u¨bertragen
• Die Sicherheit des Protokolls beruht auf dem
Diskreter-Logarithmus Problem
• Voraussetzung: Alice und Bob einigen sich im Vorfeld auf eine
Primzahl p und ein erzeugendes Element α von Z∗p
• Die Parameter p und α m¨ussen nicht geheim gehalten werden
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
3 / 23
Diffie-Hellman Protokoll
Ablauf
Ablauf des Diffie-Hellman Protokolls
Vorbereitung: Alice und Bob einigen sich auf eine Primzahl p und ein
erzeugendes Element α von Z∗p
Ablauf:
1. Alice w¨ahlt zuf¨allig ein a ∈ Z∗p , berechnet yA = αa mod p.
Anschließend sendet sie yA an Bob
2. Bob w¨ahlt zuf¨allig ein b ∈ Z∗p , berechnet yB = αb mod p.
Anschließend sendet er yB an Alice
3. Alice berechnet kA = yBa mod p und Bob berechnet
kB = yAb mod p
Ergebnis: Wenn das Protokoll ordnungsgem¨aß durchl¨auft, dann sind
kA und kB identisch, denn
yBa ≡ (αb )a ≡ (αa )b ≡ (yA )b
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
(mod p)
Schl¨
usselvereinbarung
4 / 23
Diffie-Hellman Protokoll
Ablauf
Ablauf des Diffie-Hellman Protokolls (Forts.)
Sei p eine Primzahl und α ein Generator von Z∗p
Alice
Bob
W¨ahlt zuf¨allig ein a ∈ Z∗p
W¨ahlt zuf¨allig ein b ∈ Z∗p
αa mod p
αb mod p
αab mod p
Geheimer Schl¨ussel
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
5 / 23
Diffie-Hellman Protokoll
Ablauf
Beispiel zum DH Schlu¨sselaustausch
Angenommen, p = 27803 und α = 5 sind die ¨offentlichen Parameter
f¨ur einen DH Schl¨usselaustausch.
Alice w¨urfelt a = 21131 und berechnet 521131 mod 27803 = 21420.
Anschließend sendet sie Bob diesen Wert.
Bob w¨urfelt b = 17555 und berechnet 517555 mod 27803 = 17100.
Diesen Wert sendet er an Alice.
Alice und Bob berechnen schließlich den geheimen Schl¨ussel
2142017555 mod 27803 = 1710021131 mod 27803 = 11134.
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
6 / 23
Diffie-Hellman Protokoll
Man-In-The-Middle Attacke
Man-In-The-Middle Attacke
∗
αa mod p
Alice
αa mod p
Oskar
b∗
α
Bob
b
mod p
α mod p
• Oskar sitzt “zwischen” Alice und Bob und fungiert als
Vermittlungsstelle.
• Oskar ersetzt die Teilschl¨ussel von Alice und Bob durch seine
eigenen.
• Alice und Bob k¨onnen zwar ihre Daten mit dem ausgehandelten
Schl¨ussel verschl¨usseln, aber keiner kann die Daten des anderen
entschl¨usseln.
• Oskar kann alle Daten ver- bzw. entschl¨usseln und entsprechend
weiterleiten.
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
7 / 23
Diffie-Hellman Protokoll
Station-To-Station Protokoll
Verbessertes Verfahren
Idee: Einsatz von Pr¨ufsummen oder Signaturen
Modifiziertes Protokoll:
Sei p eine Primzahl und α ein Generator von Z∗p
Alice
Bob
αa
αb , signB (mB , αa , αb )
signA (mA , αa , αb )
Alle Berechnungen verstehen sich modulo p
mA und mB stehen f¨
ur den Signaturschl¨
ussel von Alice bzw. Bob
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
8 / 23
Diffie-Hellman Protokoll
Station-To-Station Protokoll
Verbessertes Verfahren (Forts.)
• Bei dem Protokoll handelt es sich um eine Vereinfachung des
Station-To-Station Protokolls
• Modifikation: Alice und Bob signieren die zu u¨bertragenden
Daten
• Konsequenzen:
. Alice und Bob k¨onnen u¨berpr¨ufen, ob die Daten korrekt
u¨bertragen wurden
. Oskar kann die Nachrichten nicht umbemerkt ver¨andern, da
er die Signaturschl¨ussel von Alice und Bob nicht kennt
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
9 / 23
Diffie-Hellman Protokoll
Sichere Primzahlen
Gefahren bei der Parameterwahl
Beobachtung:
• Die Generierung von p und α ist kritisch f¨ur die Sicherheit des
Diffie-Hellman Protokolls
• Ist α kein erzeugendes Element, sondern ein Element mit
niedriger Ordnung, dann kann Oskar eine Brute-Force Attacke
ausf¨uhren
¨
• Die Uberpr¨
ufung, dass α ein erzeugendes Element von Z∗p ist, ist
aufw¨andig, wenn man nicht die Primfaktorzerlegung von ϕ(p)
kennt
L¨osung: Einsatz einer sicheren Primzahl
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
10 / 23
Diffie-Hellman Protokoll
Sichere Primzahlen
Sichere Primzahlen
Definition. Eine sichere Primzahl ist eine hinreichend große Primzahl
p mit der Eigenschaft, dass p = 2q + 1 f¨ur eine Primzahl q
Ist p eine sichere Primzahl, dann hat Z∗p folgende Untergruppe:
• die triviale Untergruppe {1}
• die Untergruppe {1, p − 1} mit 2 Elementen
• die Untergruppe mit q Elementen
• Z∗p mit 2q Elementen
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
11 / 23
Diffie-Hellman Protokoll
Generierung der ¨
offentlichen Parameter
Wie erzeugt man einen Generator?
Hilfreiche Fakten:
• Ist Z∗n eine zyklische Gruppe, dann ist die Anzahl ihrer
Generatoren gleich φ(φ(n)). F¨ur eine Primzahl p ist die Anzahl
der Generatoren von Z∗p gleich φ(p − 1).
• Man kann beweisen, daß φ(n) ≥ n/6 ln(ln(n)) f¨ur alle n. Wenn
man also zuf¨allig ein Element α aus Z∗n zieht, dann ist die
Chance gut, daß α ein Generator ist.
• Die Zahl α ∈ Z∗n ist ein Generator von Z∗n genau dann, wenn
αφ(n)/p 6≡ 1 (mod n) f¨ur alle Primteiler p von φ(n).
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
12 / 23
Diffie-Hellman Protokoll
Generierung der ¨
offentlichen Parameter
Algorithmus zur Generatorerzeugung
RandomGenerator(p, p1 , e1 , p2 , e2 , . . . , pk , ek )
Input: Primzahl p, Primfaktorzerlegung p1e1 p2e2 . . . pkek von φ(p)
Output: Generator α von Z∗p
1
found := false;
2
while (found = false) do
3
α := Random(2, p − 1);
4
found := true;
5
for i := 1 to k do
6
b := αp−1/pi mod p;
7
if (b = 1) then found := false;
8
return α;
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
13 / 23
Diffie-Hellman Protokoll
Generierung der ¨
offentlichen Parameter
Berechnung der DH-Parameter
GenerateDHParams(n, s)
Input: Nat¨urliche Zahl n, Qualit¨atsparameter s
Output: n-bit Primzahlen p, q mit p = 2q + 1,
Generator α von Z∗p
1 found := false;
2 while (found = false) do
3
p := Random(2, 2n − 1);
4
if p ungerade then
5
q := (p − 1)/2;
6
found := MillerRabinTest(p, s)
and MillerRabinTest(q, s);
7 α = RandomGenerator(p, 2, 1, q, 1)
8 return (p, q, α);
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
14 / 23
Diffie-Hellman Protokoll
Einsatz einer kleinerern Untergruppe
Einsatz einer kleineren Untergruppe
• Nachteil der Verwendung einer sicheren Primzahl ist der hohe
Aufwand bei der Berechnung der modularen Exponentiationen
• Ist p eine n-Bit Primzahl (und somit q eine (n − 1)-Bit
Primzahl), dann ben¨otigt eine modulare Exponentation im
Mittel 3n/2 Multiplikationen
• Ein g¨angiger Ansatz zur Verminderung des Aufwands besteht im
Einsatz einer Primzahl p der Form p = Nq + 1, wobei q eine
Primzahl ist
• Ist p = Nq + 1, dann hat Z∗p eine Untergruppe der Gr¨oße q. Das
Element α wird so gew¨ahlt, dass es genau diese Untergruppe
erzeugt
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
15 / 23
Diffie-Hellman Protokoll
Einsatz einer kleinerern Untergruppe
Einsatz einer kleineren Untergruppe
Erzeugung der Parameter:
1. Generiere zuf¨allig eine Primzahl q mit 2255 < q < 2256
2. Generiere zuf¨allig eine große gerade Zahl N und u¨berpr¨ufe, ob
p = Nq + 1 eine Primzahl ist. Wiederhole diesen Schritt, bis eine
Primzahl gefunden wird
3. Generiere zuf¨allig eine Zahl a ∈ {1, 2, . . . , p − 1} und berechne
α = aN mod p. α hat die Ordnung q, falls
. α 6≡ 1 (mod p), und
. αq ≡ 1 (mod p)
Wiederhole diesen Schritt, bis ein passender Wert f¨ur α
gefunden wird
4. Lege (p, q, α) als ¨offentliche Parameter f¨ur das Diffie-Hellman
Protokoll fest
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
16 / 23
Diffie-Hellman Protokoll
Einsatz einer kleinerern Untergruppe
Wahl der Gr¨oße von p
Frage: Wieviele Bits sollte N bzw. p haben?
Dilemma:
• Je gr¨oßer p ist, um so sicherer ist das Diskreter-Logarithmus
Problem
• Je gr¨oßer p ist, um so aufw¨andiger ist die Berechnung der
modularen Exponentation
Ansatz: Einsatz der Formeln von A. Lenstra und E. Verheul1 , mit
denen man passende Schl¨ussell¨angen berechnen kann
1
A. Lenstra, E. Verheul: Selecting Cryptographic Key Sizes. Journal of
Cryptography 14(4):255-293, 2001.
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
17 / 23
Diffie-Hellman Protokoll
Einsatz einer kleinerern Untergruppe
Wahl der Gr¨oße von p (Forts.)
Ziel: Wahl der Schl¨ussell¨ange in Abh¨angigkeit von der Schutzdauer
der verschl¨usselten Daten in Jahren
Ergebnis:
Schl¨
ussell¨
ange
2048 Bit
3072 Bit
4096 Bit
Schutz bis zum Jahr
2022
2038
2050
Warnung: Derartige Absch¨atzungen sind mit Vorsicht zu genießen
Online-Berechnung u¨ber die Web-Page
http://www.keylength.com
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
18 / 23
No-Key Protokoll von Shamir
Das No-Key Protokoll von Shamir
Frage: Wie kann Alice an Bob eine geheime Nachricht senden, ohne
dass beide einen Schl¨ussel vereinbaren?
Antwort: Alice und Bob setzen das No-Key Protokoll von Shamir zum
Versand der Nachricht ein.
Shamir’s Idee: Verwende die diskrete Exponentialfunktion
f (a, x) = x a mod p
als symmetrische Verschl¨usselungsfunktion
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
19 / 23
No-Key Protokoll von Shamir
Shamir’s No-Key Protokoll (Vorbereitung)
• Alice und Bob einigen sich auf eine große Primzahl p. Diese Zahl
muss nicht geheim gehalten werden.
• Der Nachrichtenraum ist Z∗p .
• Alice w¨ahlt ein Zahlenpaar (a, a 0 ) so daß
a · a 0 ≡ 1 (mod p − 1).
• Bob w¨ahlt ein Zahlenpaar (b, b 0 ) so daß
b · b 0 ≡ 1 (mod p − 1).
0
0
• F¨ur alle s ∈ Z∗p gilt: s aa ≡ s bb ≡ s (mod p).
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
20 / 23
No-Key Protokoll von Shamir
Shamir’s No-Key Protokoll (Ablauf)
Alice
Bob
a
Berechnet x = s mod p
x
Berechnet y = x b mod p
y
0
Berechnet z = y a mod p
z
0
Berechnet s = z b mod p
0
Es gilt: z b mod p ≡ s aba
0b 0
0
0
≡ (|{z}
s aa )bb ≡ s (mod p)
=s
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
21 / 23
No-Key Protokoll von Shamir
Beispiel fu¨r das No-Key Protokoll
• Alice und Bob einigen sich im Vorfeld auf die Primzahl p = 113.
• Alice w¨ahlt als Schl¨usselpaar (a, a 0 ) = (47, 31), Bob das
Schl¨usselpaar (b, b 0 ) = (61, 101). Es gilt:
47 · 31 ≡ 1
61 · 101 ≡ 1
(mod 112)
(mod 112)
¨
• Ubertragung
der Nachricht s = 20:
1. Alice
Bob: 2047 mod 113 = 58
2. Bob
Alice: 5861 mod 113 = 3
3. Alice
Bob: 331 mod 113 = 47
• Bob berechnet s = 47101 mod 113 = 20
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
22 / 23
Zusammenfassung
Zusammenfassung
• Das Diffie-Hellman Protokoll erm¨oglicht die Vereinbarung eines
geheimen Schl¨ussels u¨ber einen unsicheren Kanal
• Mittels sicherer Primzahlen l¨asst sich das Diffie-Hellman
Protokoll weiter verbessern
• Die von Diffie und Hellman vorgestellten Techniken werden in
zahlreichen weiteren Protokollen eingesetzt
• Die Erfindung des Diffie-Hellman Protokolls gilt als die
Geburtsstunde der Public Key Kryptografie
Prof. Dr. C. Karg (HS Aalen)
Kryptografische Protokolle
Schl¨
usselvereinbarung
23 / 23