Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover
Titel
Impressum
Widmung
Inhalt
Vorwort
Danksagungen
Über dieses Buch
Über den Autor
Teil A Primitive: Die Elemente der Kryptografie
1 Einführung
1.1 Kryptografie sichert Protokolle
1.2 Symmetrische Kryptografie: Was ist symmetrische Verschlüsselung?
1.3 Kerckhoffs’ Prinzip: Nur der Schlüssel wird geheim gehalten
1.4 Asymmetrische Kryptografie: Zwei Schlüssel sind besser als einer
1.4.1 Schlüsselaustausch oder wie man zu einem gemeinsamen Geheimnis kommt
1.4.2 Asymmetrische Verschlüsselung – anders als die symmetrische
1.4.3 Digitale Signaturen – wie Unterschrift mit Stift und Papier
1.5 Klassifizierende und abstrahierende Kryptografie
1.6 Theoretische Kryptografie vs. praktische Kryptografie
1.7 Von der Theorie zur Praxis: Wählen Sie Ihr eigenes Abenteuer
1.8 Ein Wort der Warnung
Zusammenfassung
2 Hashfunktionen
2.1 Was ist eine Hashfunktion?
2.2 Sicherheitseigenschaften einer Hashfunktion
2.3 Sicherheitsbetrachtungen für Hashfunktionen
2.4 Hashfunktionen in der Praxis
2.4.1 Commitments
2.4.2 Subressourcenintegrität
2.4.3 BitTorrent
2.4.4 Tor
2.5 Standardisierte Hashfunktionen
2.5.1 Die Hashfunktion SHA-2
2.5.2 Die Hashfunktion SHA-3
2.5.3 SHAKE und cSHAKE: Zwei Funktionen mit erweiterbarer Ausgabe (XOF)
2.5.4 Mehrdeutiges Hashing mit TupleHash vermeiden
2.6 Hashing von Kennwörtern
Zusammenfassung
3 Message Authentication Codes (MACs)
3.1 Zustandslose Cookies, ein motivierendes Beispiel für MACs
3.2 Ein Beispiel in Code
3.3 Sicherheitseigenschaften eines MAC
3.3.1 Fälschen eines Authentifizierungstags
3.3.2 Längen des Authentifizierungstags
3.3.3 Replay-Angriffe
3.3.4 Authentifizierungstags in konstanter Zeit verifizieren
3.4 MAC im wahren Leben
3.4.1 Authentifizierung von Nachrichten
3.4.2 Schlüssel ableiten
3.4.3 Integrität von Cookies
3.4.4 Hashtabellen
3.5 MACs in der Praxis
3.5.1 HMAC, ein Hash-basierter MAC
3.5.2 KMAC – ein MAC, der auf cSHAKE basiert
3.6 SHA-2- und Length-Extension-Angriffe
Zusammenfassung
4 Authentifizierte Verschlüsselung
4.1 Was ist eine Chiffre?
4.2 Die Blockchiffre AES (Advanced Encryption Standard)
4.2.1 Wie viel Sicherheit bietet AES?
4.2.2 Die Schnittstelle von AES
4.2.3 Die Interna von AES
4.3 Der verschlüsselte Pinguin und die Betriebsart CBC
4.4 Fehlende Authentizität, deshalb AES-CBC-HMAC
4.5 All-in-one-Konstruktionen: Authentifizierte Verschlüsselung
4.5.1 Was ist authentifizierte Verschlüsselung mit zugehörigen Daten (AEAD)?
4.5.2 Der AEAD-Modus AES-GCM
4.5.3 ChaCha20-Poly1305
4.6 Andere Arten der symmetrischen Verschlüsselung
4.6.1 Key-Wrapping
4.6.2 Authentifizierte Verschlüsselung, die gegen Nonce-Missbrauch resistent ist
4.6.3 Datenträgerverschlüsselung
4.6.4 Datenbankverschlüsselung
Zusammenfassung
5 Schlüsselaustausch
5.1 Was sind Schlüsselvereinbarungen?
5.2 Der Diffie-Hellman-(DH-)Schlüsselaustausch
5.2.1 Gruppentheorie
5.2.2 Das Problem des diskreten Logarithmus: Die Basis von Diffie-Hellman
5.2.3 Die Diffie-Hellman-Standards
5.3 Der Elliptic Curve Diffie-Hellman-(ECDH-)Schlüsselaustausch
5.3.1 Was ist eine elliptische Kurve?
5.3.2 Wie funktioniert der Elliptic Curve Diffie-Hellman-(ECDH-)Schlüsselaustausch?
5.3.3 Die Standards für Elliptic Curve Diffie-Hellman
5.4 Angriffe auf kleine Untergruppen und andere Sicherheitsüberlegungen
Zusammenfassung
6 Asymmetrische und hybride Verschlüsselung
6.1 Was ist asymmetrische Verschlüsselung?
6.2 Asymmetrische Verschlüsselung in der Praxis und hybride Verschlüsselung
6.2.1 Schlüsselvereinbarungen und Schlüsselkapselung
6.2.2 Hybride Verschlüsselung
6.3 Asymmetrische Verschlüsselung mit RSA: Das Schlechte und das weniger Schlechte
6.3.1 RSA nach Lehrbuch
6.3.2 Warum man RSA PKCS#1 v1.5 nicht verwenden sollte
6.3.3 Asymmetrische Verschlüsselung mit RSA-OAEP
6.4 Hybride Verschlüsselung mit ECIES
Zusammenfassung
7 Signaturen und Null-Wissen-Beweise
7.1 Was ist eine Signatur?
7.1.1 Signieren und Verifizieren in der Praxis
7.1.2 DER Anwendungsfall von Signaturen: Authentifizierter Schlüsselaustausch
7.1.3 Eine praktische Anwendung: Infrastrukturen für öffentliche Schlüssel
7.2 Null-Wissen-Beweise (ZKPs): Der Ursprung der Signaturen
7.2.1 Schnorr-Identifikationsprotokoll: Ein interaktiver Null-Wissen-Beweis
7.2.2 Signaturen als nicht interaktive Null-Wissen-Beweise
7.3 Die Signaturalgorithmen, die Sie verwenden sollten (oder nicht)
7.3.1 RSA PKCS#1 v1.5: Ein schlechter Standard
7.3.2 RSA-PSS: Ein besserer Standard
7.3.3 Der Elliptic Curve Digital Signature-Algorithmus (ECDSA)
7.3.4 Der Edwards-curve Digital Signature Algorithm (EdDSA)
7.4 Subtiles Verhalten von Signaturverfahren
7.4.1 Substitutionsangriffe auf Signaturen
7.4.2 Malleability von Signaturen
Zusammenfassung
8 Zufälligkeit und Geheimnisse
8.1 Was ist Zufälligkeit?
8.2 Langsame Zufälligkeit? Verwenden Sie einen Pseudozufallszahlengenerator (PRNG)
8.3 Zufälligkeit in der Praxis erzeugen
8.4 Zufallszahlenerzeugung und Sicherheitsüberlegungen
8.5 Öffentliche Zufälligkeit
8.6 Schlüsselableitung mit HKDF
8.7 Schlüssel und Geheimnisse verwalten
8.8 Dezentralisiertes Vertrauen mit Schwellenwertkryptografie
Zusammenfassung
Teil B Protokolle: Die Rezepte der Kryptografie
9 Sicherer Transport
9.1 Die Protokolle für sicheren Transport – SSL und TLS
9.1.1 Von SSL zu TLS
9.1.2 TLS in der Praxis verwenden
9.2 Wie funktioniert das TLS-Protokoll?
9.2.1 Der TLS-Handshake
9.2.2 Wie TLS 1.3 Anwendungsdaten verschlüsselt
9.3 Der Stand der Dinge im verschlüsselten Web heute
9.4 Andere sichere Transportprotokolle
9.5 Das Noise-Protokoll-Framework: Eine moderne Alternative zu TLS
9.5.1 Die vielen Handshakes von Noise
9.5.2 Ein Handshake mit Noise
Zusammenfassung
10 Ende-zu-Ende-Verschlüsselung
10.1 Warum Ende-zu-Ende-Verschlüsselung?
10.2 Eine Vertrauensbasis, die nirgendwo zu finden ist
10.3 Das Scheitern der verschlüsselten E-Mail
10.3.1 PGP oder GPG? Und wie funktionieren sie?
10.3.2 Vertrauen zwischen Benutzern mit dem Netz des Vertrauens skalieren
10.3.3 Schlüsselermittlung ist ein echtes Problem
10.3.4 Wenn nicht PGP, was dann?
10.4 Sicheres Messaging: Ein moderner Blick auf die Ende-zu-Ende-Verschlüsselung mit Signal
10.4.1 Benutzerfreundlicher als WOT: Vertrauen, aber verifizieren
10.4.2 X3DH: Der Handshake des Signal-Protokolls
10.4.3 Double Ratchet: Das Post-Handshake-Protokoll von Signal
10.5 Der Stand der Ende-zu-Ende-Verschlüsselung
Zusammenfassung
11 Benutzerauthentifizierung
11.1 Authentifizierung – eine Wiederholung
11.2 Benutzerauthentifizierung – oder wie wird man Kennwörter los?
11.2.1 Ein Kennwort für alles: Single Sign-on (SSO) und Kennwort-Manager
11.2.2 Kein Interesse an Ihren Kennwörtern? Verwenden Sie einen asymmetrischen kennwortauthentifizierten Schlüsselaustausch
11.2.3 Einmalkennwörter sind eigentlich keine Kennwörter: Mit symmetrischen Schlüsseln kennwortlos werden
11.2.4 Kennwörter durch asymmetrische Schlüssel ersetzen
11.3 Benutzergestützte Authentifizierung: Pairing von Geräten mit menschlicher Hilfe
11.3.1 Vorher vereinbarte Schlüssel (Pre-shared keys)
11.3.2 Symmetrischer kennwortauthentifizierter Schlüsselaustausch mit CPace
11.3.3 Gab es einen MITM-Angriff auf meinen Schlüsselaustausch? Prüfen Sie einfach einen kurzen authentifizierten String (SAS)
Zusammenfassung
12 Krypto wie in Kryptowährung?
12.1 Eine kleine Einführung in byzantinische fehlertolerante (BFT) Konsensalgorithmen
12.1.1 Ein Problem der Stabilität: Verteilte Protokolle zur Rettung
12.1.2 Ein Problem des Vertrauens? Dezentralisierung hilft
12.1.3 Ein Problem der Größe: Erlaubnisfreie und zensurresistente Netzwerke
12.2 Wie funktioniert Bitcoin?
12.2.1 Wie Bitcoin mit Kontoständen und Transaktionen umgeht
12.2.2 BTCs schürfen im digitalen Goldzeitalter
12.2.3 Verzweigungschaos – Konflikte beim Mining lösen
12.2.4 Die Blockgröße mit Merkle-Bäumen reduzieren
12.3 Ein Rundgang durch die Kryptowährungen
12.3.1 Volatilität
12.3.2 Latenz
12.3.3 Größe der Blockchain
12.3.4 Vertraulichkeit
12.3.5 Energieeffizienz
12.4 DiemBFT: Ein byzantinisch fehlertolerantes (BFT) Konsensprotokoll
12.4.1 Sicherheit und Lebendigkeit: Die beiden Eigenschaften eines BFT-Konsensprotokolls
12.4.2 Eine Runde im DiemBFT-Protokoll
12.4.3 Wie viel Unehrlichkeit kann das Protokoll tolerieren?
12.4.4 Die DiemBFT-Regeln für eine Abstimmung
12.4.5 Wann gelten Transaktionen als finalisiert?
12.4.6 Die Intuitionen hinter der Sicherheit von DiemBFT
Zusammenfassung
13 Hardware-Kryptografie
13.1 Angreifermodell der modernen Kryptografie
13.2 Nicht vertrauenswürdige Umgebungen: Hardware als Rettung
13.2.1 White-Box-Kryptografie – eine schlechte Idee
13.2.2 In Ihrer Brieftasche: Smartcards und Secure Elements
13.2.3 Lieblinge der Banken: Hardware-Sicherheitsmodule (HSMs)
13.2.4 Trusted Platform Modules (TPMs): Eine nützliche Standardisierung von Secure Elements
13.2.5 Vertrauliche Datenverarbeitung mit einer vertrauenswürdigen Ausführungsumgebung (TEE)
13.3 Welche Lösung ist für mich geeignet?
13.4 Leakage-resiliente Kryptografie oder wie man Seitenkanalangriffe in Software entschärft
13.4.1 Programmierung in konstanter Zeit
13.4.2 Nicht das Geheimnis verwenden! Maskieren und Blinding
13.4.3 Was ist mit Fehlerangriffen?
Zusammenfassung
14 Post-Quanten-Kryptografie
14.1 Was sind Quantencomputer und warum fürchten sich Kryptografen vor ihnen?
14.1.1 Quantenmechanik – das Studium des Kleinen
14.1.2 Von der Geburt des Quantencomputers zur Quantenüberlegenheit
14.1.3 Der Einfluss der Algorithmen von Grover und Shor auf die Kryptografie
14.1.4 Post-Quanten-Kryptografie – die Verteidigung gegen Quantencomputer
14.2 Hash-basierte Signaturen – eine Hashfunktion genügt
14.2.1 Lamport-Einmal-Signaturverfahren
14.2.2 Kleinere Schlüssel mit Winternitz-Einmal-Signaturen (WOTS)
14.2.3 Vielfache Signaturen mit XMSS und SPHINCS+
14.3 Kürzere Schlüssel und Signaturen mit gitterbasierter Kryptografie
14.3.1 Was ist ein Gitter?
14.3.2 Lernen mit Fehlern (LWE), eine Basis für die Kryptografie?
14.3.3 Kyber, ein gitterbasierter Schlüsselaustausch
14.3.4 Dilithium, ein gitterbasiertes Signaturverfahren
14.4 Muss ich in Panik geraten?
Zusammenfassung
15 Ist es das? Die Kryptografie der nächsten Generation
15.1 Je mehr, desto besser: Sichere Mehrparteienberechnung (MPC)
15.1.1 Private Mengenüberschneidung (PSI)
15.1.2 MPC für allgemeine Zwecke
15.1.3 Der Zustand von MPC
15.2 Vollständig homomorphe Verschlüsselung (FHE) und die Versprechen einer verschlüsselten Cloud
15.2.1 Ein Beispiel für homomorphe Verschlüsselung mit RSA-Verschlüsselung
15.2.2 Die verschiedenen Arten der homomorphen Verschlüsselung
15.2.3 Bootstrapping, der Schlüssel zur vollständig homomorphen Verschlüsselung
15.2.4 Ein FHE-Schema, das auf dem Problem Lernen mit Fehlern basiert
15.2.5 Wo wird es verwendet?
15.3 Allgemeine Null-Wissen-Beweise (ZKPs)
15.3.1 Wie zk-SNARKs funktionieren
15.3.2 Homomorphe Commitments, um Teile des Beweises zu verbergen
15.3.3 Bilineare Paarungen, um unsere homomorphen Commitments zu verbessern
15.3.4 Woher kommt die Prägnanz?
15.3.5 Von Programmen zu Polynomen
15.3.6 Programme sind für Computer; wir brauchen stattdessen arithmetische Schaltungen
15.3.7 Eine arithmetische Schaltung in ein Rang-1-Constraint-System (R1CS) konvertieren
15.3.8 Von R1CS zu einem Polynom
15.3.9 Es gehören zwei dazu, um ein im Exponenten verstecktes Polynom auszuwerten
Zusammenfassung
16 Wann und wo Kryptografie scheitert
16.1 Die Suche nach dem richtigen kryptografischen Primitiv oder Protokoll ist eine langweilige Angelegenheit
16.2 Wie verwende ich ein kryptografisches Primitiv oder Protokoll? Höfliche Standards und formale Verifizierung
16.3 Wo sind die guten Bibliotheken?
16.4 Kryptografie missbrauchen: Entwickler sind der Feind
16.5 Sie machen es falsch: Brauchbare Sicherheit
16.6 Kryptografie ist keine Insel
16.7 Ihre Verantwortlichkeiten als Kryptografie-Praktiker – keine »selbst gedrehte« Krypto
Zusammenfassung
A Antworten zu den Übungen
A.1 Kapitel 2
A.2 Kapitel 3
A.3 Kapitel 6
A.4 Kapitel 7
A.5 Kapitel 8
A.6 Kapitel 9
A.7 Kapitel 10
A.8 Kapitel 11
Fußnoten
Index
← Prev
Back
Next →
← Prev
Back
Next →