9 points par GN⁺ 2024-05-03 | 1 commentaires | Partager sur WhatsApp
  • Cours gratuit de cryptographie en ligne animé par Dan Boneh de Stanford University, avec la liste complète des leçons publiée, tandis que les devoirs officiels, les projets et l’examen final sont proposés sur Coursera
  • Le manuel gratuit A Graduate Course in Applied Cryptography est utilisé en parallèle ; il approfondit le contenu du cours et complète celui-ci avec des preuves de sécurité et des exercices
  • Le programme s’étend sur 7 semaines, des chiffres de flux aux signatures numériques, chaque semaine étant reliée aux chapitres du manuel, aux vidéos de cours et aux diapositives
  • Le cours couvre largement des briques cryptographiques pratiques comme le one-time pad, les PRG, DES, AES, les MAC, HMAC, TLS 1.2, Diffie-Hellman, RSA, ElGamal et les signatures fondées sur le hachage
  • Les leçons individuelles peuvent être visionnées via les vidéos Coursera, et il faut s’inscrire au cours Coursera si l’on souhaite une évaluation et une certification

Modalités de suivi et manuel

  • Il s’agit d’un cours de cryptographie en ligne animé par Dan Boneh de Stanford University
  • L’ensemble des leçons du cours gratuit est réuni sur une seule page
  • Pour suivre officiellement le cours, y compris les devoirs, les projets et l’examen final, il faut passer par la page du cours Coursera
  • Le manuel gratuit est A Graduate Course in Applied Cryptography de D. Boneh et V. Shoup
    • Il traite les sujets plus en profondeur que le cours et inclut des preuves de sécurité ainsi que de nombreux exercices

Semaine 1 : aperçu du cours et chiffres de flux

Semaine 2 : chiffres par blocs

Semaine 3 : intégrité des messages et hachage résistant aux collisions

Semaine 4 : chiffrement authentifié et pièges d’implémentation

Semaine 5 : échange de clés et bases de théorie des nombres

Semaine 6 : cryptographie à clé publique

Semaine 7 : signatures numériques

  • La semaine 7 correspond aux chapitres 13–14 du manuel et couvre les signatures numériques ainsi que les signatures fondées sur le hachage
  • Des diapositives sont proposées sur les thèmes Digital signatures et Hash-based signatures

1 commentaires

 
GN⁺ 2024-05-03
Avis sur Hacker News
  • Quand j’étais étudiant à Stanford, CS255 Intro to Cryptography faisait partie de mes cours préférés, et Dan était vraiment un excellent enseignant.
    Si vous voulez davantage de supports de cours de Stanford sur la sécurité, je recommande aussi CS253 Web Security (https://web.stanford.edu/class/cs253/). Pour être transparent, c’est moi qui ai créé ce cours, et CS356 Topics in Computer and Network Security (https://cs356.stanford.edu/) est bien aussi.
    Les vidéos de CS253 sont ici : https://www.youtube.com/playlist?list=PL1y1iaEtjSYiiSGVlL1cH...

    • D’accord. J’ai vraiment beaucoup aimé les cours 155, 255, 251 du professeur Boneh, et il a été l’un de mes enseignants préférés pendant des années.
      Il est très talentueux et explique remarquablement bien les concepts.
  • J’ai suivi son cours en ligne de cryptographie il y a quelques années, et il était excellent.
    Même avec un bagage en maths, ce cours m’a fait comprendre que je ne voulais pas devenir cryptographe professionnel, ce qui était déjà une découverte assez utile.
    Blague à part, j’ai vraiment apprécié la façon d’analyser les systèmes cryptographiques comme un jeu contre le diable, où l’on essaie de distinguer des octets chiffrés d’une suite de bits aléatoires.

    • Moi aussi, j’ai suivi ce cours sur Coursera il y a quelques années, et il était vraiment excellent.
      La conclusion : ne faites pas votre propre crypto, parce qu’il est difficile de le faire correctement. C’est assez cynique, mais cela a quelque peu freiné mon envie d’approfondir le sujet.
  • Excellent cours. Cela dit, l’estimation de 23 heures pour le terminer peut beaucoup varier selon votre niveau préalable sur le sujet.
    Mieux vaut en tenir compte, se préparer et adapter son rythme.

  • Ça a l’air bien, mais j’aimerais trouver des ressources qui, sans commencer par les maths, abordent l’utilisation des bibliothèques de cryptographie du point de vue d’un praticien.
    Je n’ai pas besoin de connaître la structure détaillée de RSA ; j’ai besoin de savoir comment le combiner en toute sécurité avec d’autres primitives pour construire un système ayant les propriétés voulues.

    • J’ai commencé à lire Real-World Cryptography de David Wong pour mieux comprendre la crypto, afin d’écrire avec plus d’assurance des programmes qui utilisent des protocoles existants.
      J’en suis à peu près aux trois quarts et j’en suis satisfait. Les maths sont abordées légèrement, mais il y en a un peu ; le livre semble destiné aux personnes qui sont mal à l’aise d’utiliser ces outils sans comprendre leur fonctionnement interne, sans pour autant avoir besoin de travailler sur leur implémentation interne.
      Grâce à ce livre, j’ai l’impression d’en avoir appris assez pour pouvoir assembler des primitives afin de construire des protocoles qui, en apparence, se comportent comme prévu. En même temps, j’ai aussi appris qu’il existe beaucoup de subtilités capables de casser complètement un protocole, que la combinaison de primitives peut créer des faiblesses inattendues, et que même des gens bien meilleurs que moi en crypto peuvent construire des protocoles cassés avec des primitives sûres.
      Ce n’est peut-être pas le livre que vous cherchez, mais si vous voulez comprendre la crypto plutôt que concevoir vous-même des systèmes, je pense que c’est un bon livre.
    • Il faut rester prudent vis-à-vis des capacités que l’on pense obtenir avec un nouveau système. Les développeurs logiciel reçoivent souvent, sans s’en rendre compte, plusieurs sieverts de dose de rayonnement de nouveauté, et n’ont pas forcément suffisamment consolidé la théorie ennuyeuse.
      Par exemple, si vous utilisez libsodium exactement de la même façon que 100 autres développeurs l’ont déjà fait avec succès, tout va bien. Mais avec quelques étapes très petites et subtiles, vous vous retrouvez sans vous en rendre compte à synthétiser un nouveau système cryptographique. Tenter de construire un système de messagerie sécurisée avec les primitives de libsodium en est un exemple.
      Il faut apprendre beaucoup de théorie. C’est important.
    • Cherchez Cryptographic Right Answers sur Google. Il existe plusieurs articles, et la plupart de ce que vous trouverez converge globalement.
      Exemples : https://gist.github.com/tqbf/be58d2d39690c3b366ad ou https://www.latacora.com/blog/2018/04/03/cryptographic-right...
    • Ce qu’il vous faut est peut-être un livre comme Cryptography Engineering: Design Principles and Practical Applications.
      Il est signé Bruce Schneier, Niels Ferguson et Tadayoshi Kohno.
    • La composition sûre est clairement abordée dans ce cours. Il ne parle pas seulement des détails de RSA — même s’il y a évidemment des cours à ce sujet —, mais aussi des propriétés de sécurité satisfaites par différentes primitives et de la façon de les combiner en sécurité.
      Une grande partie de la cryptographie moderne consiste à trouver des compositions sûres.
  • Dans ce fil, beaucoup de gens semblent intéressés par un apprentissage pratique de la cryptographie sans théorie. Dans ce cas, il faut regarder cryptopals.com, par le MVP HN tptacek.

  • Si vous voulez vous entraîner à ce genre de choses sous forme de CTF, je recommande https://cryptohack.org/. C’est un excellent site.

  • C’est un excellent cours, qui a joué un rôle important dans ma progression professionnelle.
    Il est aussi intéressant de noter que Dan Boneh est conseiller auprès de l’équipe de recherche a16z crypto[1], et qu’il produit beaucoup de contenus liés à la blockchain avec eux[2].
    [1]: https://a16zcrypto.com/research/
    [2]: https://a16zcrypto.com/team/dan-boneh/

  • Cryptographie à clé publique
    C’est tout du RSA. Les tutoriels de cryptographie pourraient-ils enfin inclure un peu de cryptographie sur courbes elliptiques ?

    • On ne regarde peut-être pas la même chose, mais le lien mentionne le chiffrement ElGamal, qui repose sur le logarithme discret.
      Les implémentations modernes utilisent les courbes elliptiques ; historiquement, on utilisait probablement le logarithme discret dans des sous-groupes de grands corps premiers. Le cours traite aussi des signatures BLS, qui reposent entièrement sur les courbes elliptiques.
      En général, tout ce dont la sécurité dépend du logarithme discret peut être implémenté avec des courbes elliptiques. Mais dans un cours d’introduction à la cryptographie, ce dont on a surtout besoin est un groupe d’ordre premier, et les courbes elliptiques peuvent généralement être traitées comme une boîte noire fournissant un tel groupe ; on les considère donc comme un détail d’implémentation.
      Les signatures BLS font exception. Elles nécessitent un appariement bilinéaire, ce qui exige un type particulier de courbe elliptique plutôt qu’un simple groupe d’ordre premier en boîte noire.
      Il existe beaucoup de superbes astuces de géométrie algébrique réalisables avec les courbes elliptiques, mais elles apparaîtront rarement dans un cours d’introduction à la cryptographie, et peut-être même dans aucun cours d’informatique.
  • Quelqu’un attend encore le cours Cryptography II sur Coursera ?

  • Son livre coécrit A Graduate Course in Applied Cryptography m’a été très utile.
    https://toc.cryptobook.us/