36
HOCHSCHULE FÜR TECHNIK UND WIRTSCHAFT DRESDEN UNIVERSITY OF APPLIED SCIENCES Fakultät Informatik/Mathematik Professur Informatikrecht/Informationssysteme INFORMATIONSSICHERHEIT Prof. Dr. Andreas Westfeld Dresden, Wintersemester 2017/2018

INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Fakultät Informatik/Mathematik Professur Informatikrecht/Informationssysteme

INFORMATIONSSICHERHEIT

Prof. Dr. Andreas Westfeld

Dresden, Wintersemester 2017/2018

Page 2: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Die revolutionäre Idee

Diffie und Hellman

I Trennen von Schlüsseln zumVer- und Entschlüsseln;asymmetrische Paare vonSchlüsseln

I Brechen eines Schlüssels oderKryptogramms soll äquivalentzur Lösung eines bisherungelösten mathematischenProblems sein ý

Komplexitätstheorie:NP-vollständige Probleme

Martin Hellman (links) undWhitfield Diffie (rechts)veröffentlichten 1976 einenrichtungsweisenden Beitrag.

NP-vollständig z. B.: Problem des Handlungsreisenden, Erfüllbarkeitsproblem der Aussagenlogik, Rucksackproblem

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 86 von 171

Page 3: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kongruenzarithmetik

Modulare Reduktion

Die Kongruenzarithmetik basiert auf einer festen ganzen Zahl m > 1, dieModulus genannt wird. Die grundlegende Operation ist die Reduktionmodulo m. Um eine ganze Zahl a modulo m zu reduzieren, teilt man a durchm und erhält den Rest r . Diese Operation schreibt man

r := a mod m

Der Rest r erfüllt die Bedingung 0 ≤ r < m.

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 89 von 171

Page 4: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kongruenzarithmetik

Kongruenzen

Zwei Zahlen a und b nennt man kongruent modulo m, wenn sie nachmodularer Reduktion das gleiche Ergebnis liefern. Diese Beziehung schreibtman

a ≡ b (mod m)

Beispiel:−3 ≡ 11 (mod 7)

Aus r = a mod m folgt r ≡ a (mod m).Für a1 ≡ b1 (mod m) und a2 ≡ b2 (mod m) gilt:

a1 + a2 ≡ b1 + b2 (mod m)

a1 − a2 ≡ b1 − b2 (mod m)

a1 · a2 ≡ b1 · b2 (mod m)

Übung: Reduziere 10 (mod 8), 3 (mod 11),−3 (mod 7) und 5 (mod 5).

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 90 von 171

Page 5: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kongruenzarithmetik

Ganze Zahlen modulo m

Die ganzen Zahlen modulo m sind mögliche Ergebnisse der Reduktionmodulo m. Ihre Menge ist

Zm = {0, 1, . . . , m − 1}

Die Addition, Subtraktion und Multiplikation wird auf der Menge Zm wie in denganzen Zahlen bei gleichzeitiger Reduktion modulo m ausgeführt.

Übung: Berechne 8 + 9, 6− 9 und 3 · 4 in Z7.

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 91 von 171

Page 6: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kongruenzarithmetik

Vorüberlegungen zum modularen Potenzieren

I „leerer“ Exponent – Potenz ist eins: a0 = 1; an = a · a · a · · · a︸ ︷︷ ︸n Faktoren

I Rechenregeln für Potenzen

an · am = an+m (1)

(an)m = an·m (2)

a−n =1an =

(1a

)n

(3)

an · bn = (ab)n (4)

Das bedeutet insbesondere:– Potenz mit Basis multiplizieren – Exponent inkrementieren: an · a = an+1

– Potenz quadrieren – Exponent verdoppeln: (an)2 = a2n

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 92 von 171

Page 7: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kongruenzarithmetik

Modulares Potenzieren

I Square-and-Multiply zur effizienten Berechnung der Potenz an mod mI naïve Lösung: n − 1 (modulare) MultiplikationenI BSI schlägt 900-stelligen Modulus für sichere Anwendung vor:

– Wie lange würde die naïve Lösung brauchen? (10900 Multiplikationen)– Wie lang wäre an, wenn die Operanden jeweils 3000 Bits lang sind?

` = log2(an)` = n · log2 a` ≈ 23000 · log2(23000) = 23000 · 3000

– 36906957664833515307946764398302575439221416872105011472983540874801764018440188463260802035157803787472889477621554147255386525426947104707552474461960449937048780510675350522390699603340820007678741847192706412493034349470810250402392722716260711303798899764319888254734804653551795159111387480160402

43725871108020442758061810439317209861207058234330711521433650953300967227905950465091408791621447463729290452294761822186055396133226591204262813637777415335931848460065535163154685911298342242364471330425392542091309251585436553045696568220587390047866616535536536241656030930150767404768048937784003

401236422662145041050241722628337191279501628304062705552735290010126482161888234744507113744025291341554526295830961741253976619986741986166366265540931051723011080627487961011923392810991006511502026504124171996298017482737902169760424671836750405515667524697239733874537199321616535557054689968128000 Bits(!)

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 93 von 171

Page 8: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kongruenzarithmetik

Beispiel 2344 ≡ 7 (mod 27)

I mit Papier und Bleistift; 2344 = ((((232)2 · 23)2 · 23)2)2 (44 = 1011002)

2312 = 2323102 ≡ 232 = 529 ≡ 16 (mod 27)

231012 ≡ 162 · 23 = 256 · 23 = 5888 ≡ 2 (mod 27)2310112 ≡ 22 · 23 = 4 · 23 = 92 ≡ 11 (mod 27)

23101102 ≡ 112 = 121 ≡ 13 (mod 27)231011002 ≡ 132 = 169 ≡ 7 (mod 27)

I mit Taschenrechner

Casio fx-7400GII/fx-9860GII MOD_Exp(23, 44, 27)Casio ClassPad II . . . . . . . . . . iMod(23^44, 27)HP Prime . . . . . . . . . . . . . . . . . . powmod(23, 44, 27)TI nspire CX CAS . . . . . . . . . . numtheory\pwrmod(23, 44, 27)

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 94 von 171

Page 9: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kongruenzarithmetik

Beispiel 2344 ≡ 7 (mod 27)

I 2344 = 2332 · 238 · 234 (44 = 1011002)I separat quadrieren, Exponent „von rechts“ abarbeitenI Bitoperatoren a >> 1 und a & 1 nutzen statt Division durch 2 mit Rest

Binärwandlung Quadrieren Multiplizieren44 : 2 = 22 Rest 0 23 ≡ 231 2302 = 122 : 2 = 11 Rest 0 232 = 529 ≡ 16 ≡ 232 23002 = 111 : 2 = 5 Rest 1 162 = 256 ≡ 13 ≡ 234 231002 ≡ 1 · 13 = 13

5 : 2 = 2 Rest 1 132 = 169 ≡ 7 ≡ 238 2311002 ≡ 13 · 7 = 91 ≡ 102 : 2 = 1 Rest 0 72 = 49 ≡ 22 ≡ 2316 23011002 ≡ 101 : 2 = 0 Rest 1 222 = 484 ≡ 25 ≡ 2332 231011002 ≡ 10 · 25 = 250 ≡ 7

Welche Registergröße (welcher Datentyp) wird benötigt?

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 95 von 171

Page 10: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kongruenzarithmetik

Größter gemeinsamer Teiler

Der größte gemeinsame Teiler (ggT) zweier ganzer Zahlen a und b ist diegrößte positive Zahl d , welche a und b teilt. Falls d = 1, heißen a und bteilerfremd. Der größte gemeinsame Teiler lässt sich effizient mit demeuklidischen Algorithmus berechnen.

function ggT(a, b)while a ~= 0 do

b, a = a, b % aendreturn b

end

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 96 von 171

Page 11: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kongruenzarithmetik

Kleinstes gemeinsames Vielfaches

Das kleinste gemeinsame Vielfache (kgV) zweier ganzer Zahlen a und b istdie kleinste positive Zahl k , die sowohl a als auch b zum Teiler hat.Wenn a und b positiv sind, gilt für den ggT und das kgV die Beziehung

ggT(a, b) · kgV(a, b) = a · b,

so dass sich das kgV leicht berechnen lässt, wenn der ggT bekannt ist.

function kgV(a, b)return a * b / ggT(a, b)

end

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 97 von 171

Page 12: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kongruenzarithmetik

Modulare Division

Das inverse Element bezüglich Multiplikation (multiplikatives Inverses,„Kehrwert“) von a modulo m ist die Zahl b, für die a · b ≡ 1 (mod m) gilt. Dasmultiplikative Inverse von a wird üblicherweise

a−1 (mod m)

geschrieben. Es existiert nur, wenn a und m teilerfremd sind.Für zwei Zahlen g und h modulo m und ggT(h, m) = 1 ist der modulareQuotient g/h modulo m gleich der Zahl q = g · h−1 mod m. Für q gilt dann

g ≡ h · q (mod m).

Für die modulare Division gibt es effiziente Verfahren.

Übung: Dividiere 10/3 (mod 11), 10/4 (mod 13) und 10/5 (mod 17).

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 98 von 171

Page 13: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kongruenzarithmetik

Multiplikatives Inverses

I euklidischer Algorithmus findet den größten gemeinsamen Teiler (ggT)I erweiterter euklidischer Algorithmus findet Zerlegung von ggT:

ggT(a, b) = s · a + t · bI Besonderheiten, wenn inverses Element gesucht ist:

– a ist Modulus, muss teilerfremd zu b sein– b ist zu invertierendes Element– ggT(a, b) = 1– s · a ≡ 0 (mod a)– t ist invers zu b, effektiv steht oben 1 ≡ t · b (mod a)

Übung: Berechne 3−1 (mod 11), 4−1 (mod 13) und 5−1 (mod 17).

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 99 von 171

Page 14: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kongruenzarithmetik

Erweiterter Euklidischer Algorithmus

Die folgende Implementierung in Lua gibt den größten gemeinsamen Teilersowie die Koeffizienten s und t von dessen Zerlegung zurück.

function xeuklid(a, b)if b == 0 then

return a, 1, 0endlocal d, s, t = xeuklid(b, a % b)return d, t, s - math.floor(a / b) * t

end

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 100 von 171

Page 15: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kryptografie

I Informationen unverständlich machenI griech. geheim + schreibenI als Disziplin der Informatik auch wesentlich mehr, z. B.

– Echtheit, Authentizität nachweisen– elektronisch bezahlen

I Lehre vom Verschlüsseln auch „Kryptologie“

Kryp|to|gra|fie , Kryp|to|gra|phie,die; -, . . . ien (Psychol. absichtslosentstandene Kritzelzeichnung beiErwachsenen; Disziplin der Infor-matik; veraltet für Geheimschrift)

DUDEN

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 33 von 171

Page 16: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kryptografisches System

Symmetrische Kryptografie

I Klartext (message) m ∈ M (auch Nachricht, plain text)I Chiffretext c ∈ C (auch Schlüsseltext, cipher text)I Schlüssel (key) k ∈ KI Funktionen

– verschlüsseln (encrypt) e : (m, k ) 7→ c bzw. e : M × K → C– entschlüsseln (decrypt) d : (c, k ) 7→ m

I notwendige Bedingung ∀m ∈ M : d(e(m, k ), k ) = m

Jede mit k verschlüsselte Nachricht m lässt sich mit k korrekt entschlüsseln.

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 34 von 171

Page 17: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Symmetrisches Kryptosystem

Schlüssel-generator

em c m

d

Zufallszahl

k

k

Kerckhoffs-Prinzipe, d und c können ohne Nachteil in die Hände des Feindes fallen, k und mmüssen geheimgehalten werden.

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 35 von 171

Page 18: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Kryptografisches System

Asymmetrische Kryptografie

I Klartext (message) m ∈ M (auch Nachricht, plain text)I Chiffretext c ∈ C (auch Schlüsseltext, cipher text)I Schlüsselpaar: geheimer Schlüssel kd , öffentlicher Schlüssel ke

I Funktionen– verschlüsseln (encrypt) e : (m, ke) 7→ c bzw. e : M × K → C– entschlüsseln (decrypt) d : (c, kd ) 7→ m

I notwendige Bedingung ∀m ∈ M : d(e(m, ke), kd ) = m

Jede mit ke verschlüsselte Nachricht m lässt sich mit kd korrektentschlüsseln.

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 36 von 171

Page 19: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Asymmetrisches Kryptosystem

ke

kd

Schlüssel-generator

em c m

d

Zufallszahl

ke ist öffentlich, falls das System die Vertraulichkeit sichern soll.kd ist öffentlich, falls das System die Zurechenbarkeit sichern soll.

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 37 von 171

Page 20: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Vergleich

Symmetrische/asymmetrische Systeme

I Wieviele Schlüssel müssen bei n Teilnehmern ausgetauscht werden?– symmetrische Systeme:

(n2

)= n·(n−1)

2 Schlüssel– asymmetrische Systeme: n Schlüssel (je System)

I Typische Schlüssellängen: (bei vergleichbarem Sicherheitsniveau)– symmetrische Systeme: 128 . . . 256 Bit– asymmetrische Systeme: 1024 . . . 4096 Bit (Elliptische Kurven: ca. 160 Bit)

I Performance– symmetrische Systeme ver- bzw. entschlüsseln etwa um den Faktor

100 . . . 1000 schneller

ý Geringere Effizienz und größere Schlüssellängen werden jedochaufgewogen durch den stark vereinfachten Schlüsselaustausch

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 65 von 171

Page 21: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Hybride Systeme

I Kombiniere– einfachen Schlüsselaustausch der asymmetrischen Systeme– hohe Verschlüsselungsleistung der symmetrischen Systeme

I Verfahren– asymmetrisches Kryptosystem zum Austausch eines symmetrischen

Sitzungsschlüssels k (session key) verwenden– eigentliche Nachricht m mit k verschlüsseln

ý Erst ab einer bestimmten Länge von m sinnvoll

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 66 von 171

Page 22: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Einordnung

Anwendungsfall × Schlüsselbeziehung

Verschlüsselung Authentikationsymmetrische AES, IDEA MAC3

asymmetrische RSA, Elgamal DSS

3hier: Message Authentication Code

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 67 von 171

Page 23: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Gütekriterien nach Shannon

I Konfusion– Verschleierung des Zusammenhangs zwischen Schlüssel und Chiffretext– Redundanz des Klartextes wird zerstreut in der Statistik des Chiffretextes– Mittel: Substitution, Ersatz der Zeichen (S-Box)

I Diffusion– Auflösung der statistischen Strukturen des Klartextes– Strenges Avalanche-Kriterium: Änderung eines Bits im Klartext ó Änderung

aller Bits im Chiffretext mit der Wahrscheinlichkeit ½– Mittel: Transposition, Permution der Zeichen (P-Box)

ý Produktchiffren (Substitutions-Permutationschiffren) erreichen beides

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 75 von 171

Page 24: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Einwegfunktionen

I Diskreter Logarithmus– leicht: y ermitteln in

y = 217 mod 19– schwer: x ermitteln in

11 = 2x mod 19– Beispiele: Elgamal, DH

I Faktorisierung– leicht: y ermitteln

(multiplizieren) in y = 101 · 83– schwer: Primfaktoren a und b

ermitteln in 8549 = a · b– Beispiel: RSA

5 10 15

510

15

x

2x m

od 1

9

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 108 von 171

Page 25: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Diffie-Hellman Schlüsselaustausch

1. Alice und Bob einigen sich (öffentlich) auf Primzahl p und Zahl g.

2. g ist ein erzeugendes Element der Gruppe Z∗p .

3. Alice berechnet α ≡ ga (mod p) mit a geheim, zufällig

4. Bob berechnet β ≡ gb (mod p) mit b geheim, zufällig

5. Beide tauschen α und β öffentlich aus.

6. Alice berechnet k ≡ βa (mod p).

7. Bob berechnet k ≡ αb (mod p).

ý Gleiches Geheimnis k ≡ gba ≡ gab (mod p)ý Was muss Eve tun, um das Geheimnis k zu ermitteln?ý Wovon hängt die Sicherheit des Systems ab?

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 109 von 171

Page 26: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Diffie-Hellman Schlüsselaustausch

Beispiel

1. Alice und Bob einigen sich (öffentlich) auf die Primzahl p = 7 und Zahlg = 5

2. (5 ist ein erzeugendes Element der Gruppe Z∗7 .)

3. Alice wählt a = 2 (zufällig) und berechnet α ≡ ga = 52 ≡ 4 (mod p).

4. Bob wählt b = 4 (zufällig) und berechnet β ≡ gb = 54 ≡ 2 (mod p).

5. Beide tauschen α = 4 und β = 2 öffentlich aus.

6. Alice berechnet k ≡ βa = 22 = 4 (mod p).

7. Bob berechnet k ≡ αb = 44 ≡ 4 (mod p).

ý Alice und Bob kennen nun den gleichen Schlüssel k = 4.

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 110 von 171

Page 27: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Elgamal

Schlüsselerzeugung

AliceI wählt bestimmende Elemente einer zyklischen Gruppe G der Ordnung

p − 1 (muss großen Primfaktor haben7) mit erzeugendem Element g,I wählt a ∈ {2, . . . , p − 2} zufällig,I berechnet α ≡ ga (mod p),I veröffentlicht g, p und α als öffentlichen Schlüssel undI bewahrt a als ihren geheimen Schlüssel für die Entschlüsselung auf.

7Meist wird p = 2q + 1 als Germainsche Primzahl gewählt, q prim.

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 111 von 171

Page 28: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Elgamal

Verschlüsselung

BobI wählt seine geheime Nachricht (oder eine Teilnachricht) m ∈ Zp

I wählt b ∈ {2, . . . , p − 2} zufällig,I berechnet β ≡ gb (mod p),I berechnet das gemeinsame Geheimnis k ≡ αb (mod p),I berechnet c ≡ m · k (mod p) undI sendet den Chiffretext (β, c) an Alice.

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 112 von 171

Page 29: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Elgamal

Entschlüsselung

AliceI berechnet das gemeinsame Geheimnis k ≡ βa (mod p),I ermittelt den Klartext m ≡ c

k (mod p)

Der Entschlüsselungsalgorithmus erzeugt den gewünschten Klartext, da

ck≡ m · αb

gab ≡ m · gab

gab = m (mod p).

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 113 von 171

Page 30: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

RSA

SchlüsselerzeugungAliceI berechnet n als Produkt von unabhängigen, zufälligen Primzahlen p und

q,ó RSA-Herausforderung (im Jahre 2009 faktorisiert: 768 Bit)ó 1728 Bit seit Ende 2010 nicht mehr geeignetó bis zum Jahre 2022: n mindestens 1976 Bit lang (Empfehlung: 2048Bit)ó | log2 p − log2 q| ungefähr im Bereich 0,1. . . 30

I wählt den öffentlichen Schlüssel e teilerfremd zuϕ(n) = |Z∗n | = (p − 1)(q − 1),ó sehr empfohlen: e ≥ 216 + 1, aber möglichst klein für Rechenvorteil

I berechnet den geheimen Schlüssel d als multiplikatives Inverses zu etraditionell modulo ϕ(n), alternativ modulo λ(n) = kgV(p − 1, q − 1):

e · d ≡ 1 (mod ϕ(n))

I und veröffentlicht e und n als ihren öffentlichen Schlüssel.

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 114 von 171

Page 31: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

RSA

Ver- und Entschlüsselung

BobI wählt seine geheime Nachricht (oder eine Teilnachricht) 0 ≤ m < n,I berechnet c ≡ me (mod n) undI sendet den Chiffretext c an Alice.

Alice entschlüsselt m ≡ cd (mod n).

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 115 von 171

Page 32: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

RSA

Mathematischer Hintergrund

Gilt (me)d ≡ me·d ≡ (md )e ≡ m (mod n) allgemein für alle m?I e und d invers zueinander modulo ϕ(n):

e · d ≡ 1 (mod ϕ(n))

e · d = 1 + k · ϕ(n) für k ∈ Z

I Satz von Euler: Für zwei teilerfremde Zahlen a und n gilt

aϕ(n) ≡ 1 (mod n).8

I Daraus folgt

me·d = m1+k·ϕ(n) = m · (mϕ(n))k ≡ m · 1k = m (mod n)

8Funktion λ von Carmichael findet die kleinste Zahl λ(n) für die gilt: aλ(n) ≡ 1 (mod n).

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 116 von 171

Page 33: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

RSA

Beispiel

I zufällige „große“ Primzahlen p = 3 und q = 11, n = pq = 33I ϕ(n) = (p − 1)(q − 1) = (3− 1)(11− 1) = 20I öffentlichen Exponent wählen (für Rechenvorteil klein) e = 3I das multiplikative Inverse (geheimen Exponent d) zu e bestimmen:

20 = 6 · 3 + 23 = 1 · 2 + 1ggT ist 11 = 3− 1 · 21 = 3− 1 · (20− 6 · 3) = −1 · 20 + 7 · 3Probe: 7 · 3 = 21 ≡ 1 (mod 20)

I Nachricht m = 15 verschlüsseln: c ≡ me = 153 = 3375 ≡ 9 (mod 33)I Chiffretext c = 9 entschlüsseln: cd = 97 = 4782969 ≡ 15 = m (mod 33)

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 117 von 171

Page 34: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Multiplikativer Angriff

. . . auf naïve RSA-Signatur

I zufällige „große“ Primzahlen p = 2 und q = 11, n = pq = 22I Signaturprüfschlüssel t = 3 wählen, Signaturschlüssel s = 7 bestimmenI Angenommen, Signierer schuldet 5 Euro und weitere 3 Euro

– Nachricht m1 = 5 signieren: c1 ≡ ms1 = 57 = 78125 ≡ 3 (mod 22)

– Nachricht m2 = 3 signieren: c2 ≡ ms2 = 37 = 2187 ≡ 9 (mod 22)

I Angreifer will aus 5 + 3 = 8 einen Schuldenbetrag vonm′ = 5 · 3 = 15 Euro machen, bestimmt die Signatur dazu

c′ = c1 · c2 = 3 · 9 = 27 ≡ 5 (mod 22)

I Signatur c′ passt zu Dokument m′:

c′t = 53 = 125 ≡ 15 = m′ (mod 22)

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 118 von 171

Page 35: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Nützliche Anwendung

. . . des Angriffs als blinde Signatur

I zufällige „große“ Primzahlen p = 3 und q = 11, n = pq = 33I Signaturprüfschlüssel t = 3 wählen, Signaturschlüssel s = 7 bestimmenI Angenommen, jemand will die geheime Nachricht m = 7 signieren lassen,

ohne dass der Signaturleistende danach m kennt.– Zufallszahl z wählen, z. B. z = 17 und Blendfaktor b bestimmen:

b ≡ z t = 173 = 4913 ≡ 29 (mod 33).– Nachricht m blenden: m′ ≡ m · z t ≡ m · b = 7 · 29 = 203 ≡ 5 (mod 33)– geblendete Nachricht signieren: m′s = 57 = 78125 ≡ 14 (mod 33)– Signatur der geblendeten Nachricht anpassen (blind geleistete Signatur

bestimmen) m′s · z−1 ≡ 14 · 2 = 28 (mod 33), (17 · 2 = 34 ≡ 1 (mod 33))– Prüfen: 283 = 21952 ≡ 7 = m (mod 33)

I mathematischer Hintergrund der blind geleisteten Signatur:

(m · z t )s · z−1 = ms · zs·t−1 = ms · z1+k·ϕ(n)−1 = ms · (zϕ(n))k ≡ ms (mod n)

mit s · t = 1 + k · ϕ(n) ≡ 1 (mod ϕ(n)), k ∈ Z, Satz von Euler zϕ(n) ≡ 1 (mod n)

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 119 von 171

Page 36: INFORMATIONSSICHERHEIT - HTW Dresdenwestfeld/srz/krypto.pdfDie folgende Implementierung in Lua gibt den größten gemeinsamen Teiler sowie die Koeffizienten s und t von dessen Zerlegung

HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES

Hashfunktionen

$ echo "Hallo Maria" | md5sum099d66dc0717c078ed26aea742b73d9e -$ echo "Hallo Mario" | md5sum5b34e3722d83a31338ba546bf835435f -$ echo "Auch längere Texte lassen sich hashen" | md5sumab81330097c49f481dfd53074524b76f -$ echo "Hallo Maria" | sha256sum73216a6b0807d3289bb1f88f29197f8ca0ef9cbbea757948826610a5b00e662c -$ echo "Hallo Mario" | sha256sumba4847685e9ac3dbb0ce1720b4081dd1084c99cff7050e2eea1f6e44357bf76e -$ echo "Auch längere Texte lassen sich hashen" | sha256sum440c6f39a3851a35f578c985a89211f9b539004a10e351e74b59193700ff9a00 -

Hashfunktion h bildet Eingabe m beliebiger Länge in einen kurzen, möglichsteindeutige Hashwert h(m) fester Länge ab ó Datenreduktion, Chaos

Westfeld, Wintersemester 2017/2018 Informationssicherheit Folie 120 von 171