9 Punkte von GN⁺ 2024-05-03 | 1 Kommentare | Auf WhatsApp teilen
  • 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 2: Block Ciphers

Woche 3: Nachrichtenintegrität und kollisionsresistentes Hashing

Woche 4: Authenticated Encryption und Implementierungsfallen

Woche 5: Schlüsselaustausch und Grundlagen der Zahlentheorie

Woche 6: Public-Key-Kryptografie

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

 
GN⁺ 2024-05-03
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...

    • Stimme zu. Ich mochte Bonehs 155, 255, 251 wirklich sehr, und er war über mehrere Jahre einer meiner Lieblingsdozenten.
      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.

    • Ich habe den Kurs vor ein paar Jahren auch auf Coursera gemacht, und er war wirklich gut.
      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 habe angefangen, David Wongs Real-World Cryptography zu lesen, weil ich Kryptographie besser verstehen wollte, um sicherer Programme schreiben zu können, die bestehende Protokolle verwenden.
      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.
    • Man sollte vorsichtig sein mit den Fähigkeiten, die man glaubt, aus neuen Systemen gewinnen zu können. Softwareentwickler bekommen oft unbemerkt mehrere Sievert Strahlendosis an Neuartigkeit ab und haben die langweilige Theorie nicht ausreichend gefestigt.
      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.
    • Such bei Google nach Cryptographic Right Answers. Es gibt mehrere Beiträge dazu, und die meisten Inhalte, die du finden wirst, sind sich im Großen und Ganzen einig.
      Beispiele: https://gist.github.com/tqbf/be58d2d39690c3b366ad oder https://www.latacora.com/blog/2018/04/03/cryptographic-right...
    • Was du brauchst, ist vielleicht ein Buch wie Cryptography Engineering: Design Principles and Practical Applications.
      Es ist von Bruce Schneier, Niels Ferguson und Tadayoshi Kohno.
    • Sichere Komposition wird in dieser Vorlesung definitiv behandelt. Es geht nicht nur um die Details von RSA, auch wenn es dazu natürlich ebenfalls eine Vorlesung gibt; behandelt wird auch, welche Sicherheitseigenschaften verschiedene Primitive erfüllen und wie man sie sicher kombiniert.
      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/

  • Public-Key-Verschlüsselung
    Alles RSA. Können Kryptographie-Tutorials nicht langsam mal ein bisschen Elliptic-Curve-Kryptographie aufnehmen?

    • Vielleicht schauen wir uns unterschiedliche Dinge an, aber im Link kommt ElGamal-Verschlüsselung vor, und die basiert auf diskreten Logarithmen.
      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/