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 localFront-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/FlaskBase 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.
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.
- 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
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
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
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
Musique
- guitare (depuis 1994),
- piano (en autodidacte depuis 2000),
- violoncelle (depuis 2012),
- chant lyrique (par intermittence depuis 2004)
Contact
Si mon profil vous intéresse, n'hésitez pas à me contacter :
- 06 31 72 16 79
- sebastien.fabrice.besnier@gmail.com