Qui suis-je ?

Agrégé de mathématiques et titulaire d'un Master 2 en cryptographie, je suis professeur de mathématiques et informatique en CPGE; sur mon temps libre, je me consacre au développement et en particulier au développement Web.

Compétences

Langages

  • Elm
  • Python
  • Haskell
  • Javascript

Frameworks

  • Django
  • Twitter Bootstrap
  • Node.js/Express

Les cours de «cryptographie»

Ces cours ont pour but de comprendre les mécanismes mis en jeu lors des communications chiffrées. Plutôt que de faire un listing des outils à utiliser (qui seront dépassés dans 2 ans), ces mini-cours s'intéressent plus aux fondements afin que les stagiaires comprennent l'intérêt des-dits outils.

Tous les cours contiennent des travaux pratiques visant à implémenter et/ou casser un algorithme (langage au choix). Chacune de ces formations dure d'une demi-journée à une journée suivant l'approfondissement souhaité et le niveau des participants.

  • Historique

    Un petit voyage dans le temps pour explorer divers algorithmes de chiffrement et les briser (César, substitution, Vigenere, DES – ancêtre de l'AES). Bien que très simples, ces différents algorithmes montrent les différents écueils à éviter et permettent de faire les premier pas en cryptanalyse.
  • SSL et échange de clefs

    Bob et Alice veulent communiquer de façon secrète par voie postale; mais comment faire alors que Charlie, le facteur malicieux, peut ouvrir toutes leurs lettres ? Nous verrons comment résoudre ce problème et ferons le parallèle avec le protocole HTTP(S). Si le temps s'y prête nous appliquerons cet alogrithme aux courbes elliptiques.
  • Fonctions de hachages

    Du stockage des mots de passe à la Blockchain en passant par les HMAC, les fonctions de hachage sont partout ! Après un panorama de leurs utilisations, nous verrons en quoi le paradoxe des anniversaires peut nous aider à les attaquer, puis nous irons plus en profondeur pour comprendre comment casser MD5.

Les formations «web»

  • Les bases du front-end

    Pendant ce cours, nous découvrons HTML/CSS/Javascript, en écrivant de simples pages en local
  • Front-end avancé

    Découvrez comment le langage Elm permet de construire rapidement des interfaces complexes qui ne plantent jamais.
  • Back-end

    On s'intéresse ici au côté serveur. Au choix, nous verrons : Javascript/Node.js, Python/Django, Python/Flask
  • Base de données en SQL

    Nous découvrirons comment effectuer des requêtes dans ce langage, mais plus important encore, nous verrons comment concevoir correctement une base de donnée relationnelle.

Mes expériences professionnelles

Cours «Applications Web et Sécurité» à l'ISTY - Université de Versailles

2016, 2018, 2019 – 40h/an

avenue de l'Europe, 78140 Vélizy

J'encadre des étudiants de master 1 en informatique durant les séances de TP/TD du cours Application Web et Sécurité.
Le cours est centré autour de la création d'applications de type single-page application avec une importance particulière accordée à la sécurité. Côté serveur, le cours présente Node.js avec le framework Express.

Enseignant de mathématiques et informatique en CPGE à l'académie de Versailles

Depuis Janvier 2015

Depuis 2017 : Titulaire en ATS (année spéciale) en mathématiques et informatique ; TSI (2ème année) en informatique.
2015 – 2017 : Remplacements en PCSI, BCPST (1ère année) et PSI (2ème année).

Animation et direction de colonies de vacances

Animation depuis 2006

Direction depuis 2010

J'ai dirigé plusieurs colonies (pour Vitacolo), mes fonctions étaient de :

  • gérer l'équipe d'animation : recrutement, réunion de préparation, bilans,
  • tenir la comptabilité du séjour,
  • gestion du planning,
  • faire le lien entre les différents acteurs : cuisinier, personnel d'entretien, intervenants extérieurs.
Ces expériences m'ont permis de développer mon sens de la communication et appris à déléguer des responsabilités.

Quelques uns de mes projets

Outil d'aide à l'organisation de séjours pour Vitacolo

Depuis Septembre 2015

  • Python
  • Django
  • Twitter-bootstrap
  • jquery
  • Elm

Vitanim est un outil d'aide à l'organisation de colonies vacances. Il a vocation à être utilisé par n'importe quel organisme de séjours de vacances bien qu'il soit en premier lieu réalisé pour Vitacolo. Acutellement, environ 3000 animateurs sont inscrits sur le site.

Il gère :
  • le recrutement : petites annonces et publication de profil,
  • les séjours (inscription d'enfants, recrutement d'animateurs),
  • la synchronisation automatique avec le site commercial de l'association pour les listes d'enfants,
  • une application pour faciliter l'appel des enfants sur le quai de la gare.

Compilation multi-cibles pour Orange

Octobre - Décembre 2014

Idée originale : L. De Feo

  • Julia

Le but de ce projet est de pouvoir écrire du code (cryptographique) dans un méta-langage puis de le compiler dans différents langages Trois backends sont écrits: C, Java et Python.

Le méta-langage en question permet de construire des «boîtes» élémentaires ayant des fils d'entrées ainsi que des fils en sortie, et comporte des fonctions pour relier ces boîtes ensemble pour en former des plus complexes. In fine, un algorithme de chiffrement est encore une «grosse» boîte.

Techniquement, ce langage de boîtes est converti vers un "single assignment language" (SAL) puis selon l'option choisi ce SAL est compilé vers C, Java ou Python.

Jeu de la vie

Octobre 2018

  • Elm

Voir une démo.

Le célèbre jeu de la vie. Dans ce projet, on peut (dés)activer des cellules sur une grille en cliquant dessus cellule par cellule ou dessiner des motifs préprogrammés grâce à des boutons. Et hop, on peut lancer la simulion et la regarder évoluer!

Assistant de preuves interactif

Décembre 2015

Idée originale : R. Sirdey

  • Python
  • Flask

Voir une démo.

Le but de ce projet est d'illustrer aux enfants qu'une preuve mathématique est essentiellement un procédé "mécanique".

Pour cela, j'ai développé un assistant de preuves interactif simple (comme Coq) en Python. C'est un moteur qui peut recevoir des requêtes simples (comme "Point A" pour créer un point A). Une vérification de type sur les requêtes est effectuée avant qu'elles soient réellement exécutées : par exemple, on ne peut pas dire au moteur "A est parallèle à d" si A est un point et d est une droite. De plus, les messages d'erreurs sont construits de façon à être les plus compréhensibles et utiles possibles aux enfants.

Ce moteur peut être interrogé via une application web qui émule une console. Cette application web met également un système de gestion d'exercices à disposition.

Le tout est hautement configurable grâce aux fichiers de configuration YAML : on peut facilement définir nos propres objets dans le moteur et exercices dans l'application web.

Plus de détails et les sources ici : https://github.com/sebsheep/poussin.

Ma formation académique

Master 2 "Algèbre appliquée à la Cryptographie et au Calcul formel" à l'université de Versailles-Saint-Quentin

2013 - 2014

Cours : la formation allie des cours mathématiques (courbes algébriques/elliptiques, bases de Gröbner) avec des cours de programmation (en C et en Sage) et de cryptographie (symétrique et asymétirque).

Projet de programmation en C : implémentation de la transformation de Fourier rapide (FFT) sur les polynômes puis d'un système de code correcteurs (Reed Solomon).

Stage : amélioration du support des isogénies en Sage

Page du master. Moyenne : 16/20, rang : 2 ème /10 .

Agrégation de mathématiques préparé à l'université d'Orsay

2011 - 2012

J'ai passé l'agrégation de mathématiques option informatique. Cette option inclut des épreuves en informatique théorique : automate fini/à pile, machines de Turing, expressions régulières, grammaires, théories de la décidabilité et de la complexité, logique, algorithmique des graphes. Le langage utilisé pour illustrer les concepts était OCaml.

Reçu 85 ème /308 .

Musique

Contact

Si mon profil vous intéresse, n'hésitez pas à me contacter :