Dan Bonehs Online-Kryptografiekurs (2017)
(crypto.stanford.edu)- Ein kostenloser Online-Kryptografiekurs von Dan Boneh von der Stanford University; die vollständige Vorlesungsliste ist öffentlich verfügbar, offizielle Aufgaben, Projekte und die Abschlussprüfung werden über Coursera angeboten
- Begleitend wird das kostenlose Lehrbuch A Graduate Course in Applied Cryptography verwendet, das gegenüber den Vorlesungen vertiefende Inhalte, Sicherheitsbeweise und Übungsaufgaben ergänzt
- Das Curriculum erstreckt sich über 7 Wochen von Stream Ciphers bis zu digitalen Signaturen; jede Woche ist mit Lehrbuchkapiteln, Vorlesungsvideos und Folien verknüpft
- Deckt ein breites Spektrum praktischer kryptografischer Bausteine ab, darunter One-Time Pad, PRG, DES, AES, MAC, HMAC, TLS 1.2, Diffie-Hellman, RSA, ElGamal und Hash-basierte Signaturen
- Einzelne Vorlesungen sind als Coursera-Videos verfügbar; wer Bewertung und Abschlusszertifikat benötigt, registriert sich für den Coursera-Kurs
Teilnahme und Lehrbuch
- Dies ist ein Online-Kryptografiekurs von Dan Boneh von der Stanford University
- Alle Vorlesungen des kostenlosen Kurses sind auf einer Seite zusammengestellt
- Für die offizielle Teilnahme einschließlich Aufgaben, Projekt und Abschlussprüfung sollte die Coursera-Kursseite genutzt werden
- Das kostenlose Lehrbuch ist A Graduate Course in Applied Cryptography von D. Boneh und V. Shoup
- Es behandelt die Inhalte tiefer als die Vorlesungen und enthält Sicherheitsbeweise sowie viele Übungsaufgaben
Woche 1: Kursüberblick und Stream Ciphers
- Woche 1 entspricht den Kapiteln 2–3 des Lehrbuchs und behandelt Kursüberblick, Grundlagen der diskreten Wahrscheinlichkeit und Stream Ciphers
- Folien werden zu den Themen Introduction und Stream ciphers bereitgestellt
- Wichtige Vorlesungen:
- Course overview: 10 Minuten
- What is cryptography: 15 Minuten
- History of cryptography: 18 Minuten
- Discrete probability (crash course): 18 Minuten
- Information theoretic security and the one-time pad: 18 Minuten
- Stream ciphers and pseudorandom generators: 19 Minuten
- Attacks on stream ciphers and the one-time pad: 23 Minuten
- Real-world stream ciphers: 19 Minuten
- PRG security definition: 24 Minuten
- Semantic security: 15 Minuten
Woche 2: Block Ciphers
- Woche 2 entspricht den Kapiteln 4–5 des Lehrbuchs und behandelt Block Ciphers sowie deren Verwendung
- Folien werden zu den Themen Block ciphers und Using block ciphers bereitgestellt
- Wichtige Vorlesungen:
- What are block ciphers: 16 Minuten
- The Data Encryption Standard (DES): 21 Minuten
- Exhaustive search attacks: 19 Minuten
- More attacks on block ciphers: 16 Minuten
- The AES block cipher: 13 Minuten
- Block ciphers from PRGs: 11 Minuten
- Review: PRPs and PRFs: 11 Minuten
- Modes of operation: one-time key: 7 Minuten
- Security for many-time key (CPA security): 22 Minuten
- Modes of operation: many-time key (CBC): 16 Minuten
- Modes of operation: many-time key (CTR): 9 Minuten
Woche 3: Nachrichtenintegrität und kollisionsresistentes Hashing
- Woche 3 entspricht den Kapiteln 6–8 des Lehrbuchs und behandelt Message Authentication Codes (MACs), Kollisionsresistenz und HMAC
- Folien werden zu den Themen Message integrity und Collision resistant hashing bereitgestellt
- Wichtige Vorlesungen:
- Message authentication codes: 15 Minuten
- MACs based on PRFs: 9 Minuten
- CBC-MAC and NMAC: 19 Minuten
- MAC padding: 8 Minuten
- PMAC and Carter-Wegman MAC: 15 Minuten
- Generic birthday attack: 14 Minuten
- The Merkle-Damgard paradigm: 11 Minuten
- Constructing compression functions: 8 Minuten
- HMAC: 7 Minuten
- Timing attacks on MAC verification: 8 Minuten
Woche 4: Authenticated Encryption und Implementierungsfallen
- Woche 4 entspricht Kapitel 9 des Lehrbuchs und behandelt Authenticated Encryption sowie Fallstricke bei der Nutzung kryptografischer Systeme
- Folien werden zu den Themen Authenticated encryption und Odds and ends bereitgestellt
- Wichtige Vorlesungen:
- Active attacks on CPA-secure encryption: 12 Minuten
- Definitions: 5 Minuten
- Chosen ciphertext attacks: 12 Minuten
- Constructions from ciphers and MACs: 20 Minuten
- Case study: TLS 1.2: 17 Minuten
- CBC padding attacks: 14 Minuten
- Attacking non-atomic decryption: 9 Minuten
- Key derivation: 13 Minuten
- Deterministic encryption: 14 Minuten
- Deterministic encryption: SIV and wide PRP: 20 Minuten
- Tweakable encryption: 14 Minuten
- Format preserving encryption: 12 Minuten
Woche 5: Schlüsselaustausch und Grundlagen der Zahlentheorie
- Woche 5 entspricht Kapitel 10 des Lehrbuchs und behandelt das Problem des Schlüsselaustauschs sowie Grundlagen der Zahlentheorie
- Folien werden zu den Themen Basic key exchange und Crash course in number theory bereitgestellt
- Wichtige Vorlesungen:
- Trusted 3rd parties: 11 Minuten
- Merkle puzzles: 11 Minuten
- The Diffie-Hellman protocol: 19 Minuten
- Public-key encryption: 10 Minuten
- Notation: 14 Minuten
- Fermat and Euler: 18 Minuten
- Modular e'th roots: 17 Minuten
- Arithmetic algorithms: 12 Minuten
- Intractable problems: 18 Minuten
Woche 6: Public-Key-Kryptografie
- Woche 6 entspricht den Kapiteln 11–12 des Lehrbuchs und behandelt Trapdoor-Permutationen, RSA und auf Diffie-Hellman basierende Public-Key-Kryptografie
- Folien werden zu den Themen Trapdoor permutation und Diffie-Hellman bereitgestellt
- Wichtige Vorlesungen:
- Definitions and security: 15 Minuten
- Constructions: 10 Minuten
- The RSA trapdoor permutation: 17 Minuten
- PKCS1: 21 Minuten
- Is RSA a one-way function?: 16 Minuten
- RSA in practice: 13 Minuten
- The ElGamal public-key system: 19 Minuten
- ElGamal security: 13 Minuten
- ElGamal variants with better security: 10 Minuten
- A unifying theme: 11 Minuten
- Farewell for now: 5 Minuten
Woche 7: Digitale Signaturen
- Woche 7 entspricht den Kapiteln 13–14 des Lehrbuchs und behandelt digitale Signaturen sowie Hash-basierte Signaturen
- Folien werden zu den Themen Digital signatures und Hash-based signatures bereitgestellt
1 Kommentare
Hacker-News-Meinungen
Als Stanford-Student war CS255 Intro to Cryptography eines meiner Lieblingsfächer, und Dan war ein wirklich hervorragender Dozent.
Wenn ihr mehr Stanford-Material zu Security-Vorlesungen wollt, empfehle ich auch CS253 Web Security (https://web.stanford.edu/class/cs253/). Der Transparenz halber: Diesen Kurs habe ich erstellt; CS356 Topics in Computer and Network Security (https://cs356.stanford.edu/) ist ebenfalls gut.
Die CS253-Videos gibt es hier: https://www.youtube.com/playlist?list=PL1y1iaEtjSYiiSGVlL1cH...
Sehr talentiert und wirklich gut darin, Konzepte zu erklären.
Ich habe vor ein paar Jahren seine Online-Kryptographie-Vorlesung besucht, und sie war sehr gut.
Obwohl ich einen mathematischen Hintergrund habe, wurde mir durch den Kurs klar, dass ich kein professioneller Kryptograph werden möchte; allein das war schon ein ziemlich guter Gewinn.
Spaß beiseite: Es hat mir wirklich gefallen, Kryptosysteme als Spiel mit einem Dämon zu analysieren und dabei zu versuchen, in verschlüsselten Bytes eine zufällige Bitfolge zu unterscheiden.
Die Quintessenz: Bau keine eigene Kryptographie, weil es schwer ist, es richtig zu machen. Ziemlich ernüchternd, aber es hat den Wunsch, tiefer einzusteigen, ein Stück weit gedämpft.
Eine hervorragende Vorlesung. Allerdings kann die geschätzte Dauer von 23 Stunden je nach Vorkenntnissen im Thema stark variieren.
Man sollte das berücksichtigen, sich entsprechend vorbereiten und das Tempo anpassen.
Sieht gut aus, aber ich wünschte, es gäbe Material, das nicht bei der Mathematik anfängt, sondern aus Praktikersicht die Nutzung von Kryptographie-Bibliotheken behandelt.
Es geht nicht darum, die Details des Aufbaus von RSA zu kennen, sondern darum, wie man es sicher mit anderen Primitiven kombiniert, um ein System mit den gewünschten Eigenschaften zu bauen.
Ich bin jetzt etwa zu drei Vierteln durch und zufrieden. Mathematik wird leichtgewichtig behandelt, kommt aber ein wenig vor; das Buch scheint sich an Leute zu richten, die sich mit der Nutzung unwohl fühlen, wenn sie die internen Abläufe nicht verstehen, die aber nicht tatsächlich an der internen Implementierung arbeiten müssen.
Durch das Buch habe ich das Gefühl, genug gelernt zu haben, um Primitive zu Protokollen zusammenzusetzen, die äußerlich wie beabsichtigt funktionieren. Gleichzeitig habe ich gelernt, dass es viele Feinheiten gibt, die ein Protokoll komplett kaputtmachen können, dass die Kombination von Primitiven unerwartete Schwachstellen erzeugen kann und dass selbst Leute, die viel mehr von Kryptographie verstehen als ich, mit sicheren Primitiven kaputte Protokolle bauen.
Vielleicht ist es nicht genau das Buch, das du suchst, aber wenn du Kryptographie verstehen willst, ohne selbst etwas zu entwerfen, halte ich es für ein gutes Buch.
Wenn du zum Beispiel libsodium genau so benutzt, wie es 100 andere Entwickler bereits erfolgreich getan haben, ist das in Ordnung. Aber nach ein paar sehr kleinen, subtilen Schritten synthetisierst du unbemerkt ein neues Kryptosystem. Der Versuch, mit libsodium-Primitiven ein sicheres Messaging-System zu bauen, ist so ein Beispiel.
Man muss viel Theorie lernen. Das ist wichtig.
Beispiele: https://gist.github.com/tqbf/be58d2d39690c3b366ad oder https://www.latacora.com/blog/2018/04/03/cryptographic-right...
Es ist von Bruce Schneier, Niels Ferguson und Tadayoshi Kohno.
Ein großer Teil moderner Kryptographie besteht darin, sichere Kompositionen zu finden.
Viele Leute in diesem Thread scheinen Interesse an praxisorientiertem Kryptographie-Lernen ohne Theorie zu haben. In dem Fall lohnt sich ein Blick auf cryptopals.com von HN-MVP tptacek.
Wenn du solche Inhalte im CTF-Format üben möchtest, empfehle ich https://cryptohack.org/. Eine hervorragende Website.
Eine hervorragende Vorlesung, die eine wichtige Rolle für meine berufliche Entwicklung gespielt hat.
Bemerkenswert ist auch, dass Dan Boneh Advisor des a16z-crypto-Forschungsteams ist[1] und gemeinsam mit ihnen viele Blockchain-bezogene Inhalte erstellt[2].
[1]: https://a16zcrypto.com/research/
[2]: https://a16zcrypto.com/team/dan-boneh/
Moderne Implementierungen verwenden elliptische Kurven; historisch hätte man wohl diskrete Logarithmen in Untergruppen großer Primkörper verwendet. Außerdem werden BLS-Signaturen behandelt, die vollständig auf elliptischen Kurven basieren.
Im Allgemeinen kann alles, dessen Sicherheit auf diskreten Logarithmen beruht, mit elliptischen Kurven implementiert werden. In Einführungskursen zur Kryptographie braucht man aber meist nur eine Gruppe von Primzahlordnung, und elliptische Kurven lassen sich im Großen und Ganzen wie eine Blackbox-Gruppe von Primzahlordnung behandeln, sodass man das als Implementierungsdetail betrachtet.
BLS-Signaturen sind eine Ausnahme. Sie benötigen bilineare Pairings, und dafür braucht man eine spezielle Art elliptischer Kurven statt nur einer einfachen Blackbox-Gruppe von Primzahlordnung.
Es gibt viele großartige algebraisch-geometrische Tricks, die man mit elliptischen Kurven machen kann, aber solche Inhalte werden in einem Einführungskurs zur Kryptographie kaum vorkommen und sind vielleicht sogar in keinem Informatikkurs leicht zu finden.
Wartet noch jemand auf den Coursera-Kurs Cryptography II?
Sein mitverfasstes Buch A Graduate Course in Applied Cryptography war sehr hilfreich.
https://toc.cryptobook.us/