
Kryptografie in der Praxis
Beschreibung
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
Weitere Details
Weitere Ausgaben
Andere Ausgaben


Personen
Inhalt
- Intro
- Titelei
- Impressum
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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)
- 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
- 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?
- 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?
- 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
- 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
- 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
- Index
Systemvoraussetzungen
Dateiformat: PDF
Kopierschutz: Wasserzeichen-DRM (Digital Rights Management)
Systemvoraussetzungen:
- Computer (Windows; MacOS X; Linux): Verwenden Sie zum Lesen die kostenlose Software Adobe Reader, Adobe Digital Editions oder einen anderen PDF-Viewer Ihrer Wahl (siehe E-Book Hilfe).
- Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions oder die App PocketBook (siehe E-Book Hilfe).
- E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m.
Das Dateiformat PDF zeigt auf jeder Hardware eine Buchseite stets identisch an. Daher ist eine PDF auch für ein komplexes Layout geeignet, wie es bei Lehr- und Fachbüchern verwendet wird (Bilder, Tabellen, Spalten, Fußnoten). Bei kleinen Displays von E-Readern oder Smartphones sind PDF leider eher nervig, weil zu viel Scrollen notwendig ist. Mit Wasserzeichen-DRM wird hier ein „weicher” Kopierschutz verwendet. Daher ist technisch zwar alles möglich – sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.
Weitere Informationen finden Sie in unserer E-Book Hilfe.