informationssicherheit - htw dresdenwestfeld/srz/krypto.pdfdie folgende implementierung in lua gibt...
TRANSCRIPT
HOCHSCHULE FÜRTECHNIK UND WIRTSCHAFTDRESDENUNIVERSITY OF APPLIED SCIENCES
Fakultät Informatik/Mathematik Professur Informatikrecht/Informationssysteme
INFORMATIONSSICHERHEIT
Prof. Dr. Andreas Westfeld
Dresden, Wintersemester 2017/2018
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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