Lipsum.dev

Maths et applications, avec les mains et avec du code 💻
Suivre sur Twitter

La géométrie projective, d'Urbino à OpenGL

30 juillet 2021

Le fait que les lignes parallèles dans le champ de vision d'un observateur « convergent » vers un point de fuite est l'une des découvertes de la Renaissance italienne.
Cette observation, très utilisée dans le rendu de scènes 3D, se formalise dans le cadre de la géométrie projective que nous abordons ici.

Nombres premiers, Miller-Rabin et OpenSSL

27 juin 2021 — Cryptographie, Python

La génération de grands nombres premiers est une étape cruciale dans la mise en oeuvre de certains protocoles cryptographiques, notamment RSA.
Nous présentons ici le test de Miller-Rabin et quelques subtilités d'implémentation, en s'appuyant notamment sur le code source d'OpenSSL.

Groupes, logarithmes et confidentialité persistante

26 novembre 2020 — Cryptographie, Go

L'un des premiers mécanismes de cryptographie asymétrique fut proposé en 1976 par Diffie et Hellman et joue un rôle central dans TLS.
Il repose notamment sur l'utilisation de groupes cycliques.
Nous présentons ici son fonctionnement et différentes implémentations à l'aide du package crypto du langage Go.

Commutativité, Quaternions et WebGL

18 septembre 2020

Les rotations dans le plan sont liées à la multiplication des complexes — des nombres à deux composantes.
Dans l'espace à trois dimensions, les rotations sont plus subtiles. Des nombres à quatre composantes, les quaternions, sont souvent utilisés pour les représenter dans les moteurs 3D.

Histoires de surfaces, de Gauss à OpenStreetMap

28 août 2020

L'étude des surfaces publiée par Gauss au début du XIXème siècle et son fameux Theorema Egregium ont de nombreuses conséquences, notamment en cartographie. Nous présentons ici le formalisme de ces surfaces qui permettent de comprendre certaines représentations cartographiques comme la projection de Mercator.

Polynômes, extensions de corps et QR codes

02 mai 2020 — Python

Les polynômes font partie de ces objets mathématiques omniprésents.
Nous allons voir comment ils permettent, à partir de certains ensembles de nombres (rationnels, réels, etc.) d'en construire de nouveaux (comme les nombres complexes).
Ce même genre de mécanisme permet aussi de construire les corps finis, qui sont utilisés en informatique (codes correcteurs d'erreur, cryptographie, etc.).

Arithmétique modulaire, RSA et clefs privées

27 avril 2020 — Cryptographie, Python

Dans cette entrée, je vous propose d'aborder le calcul « modulo n » et quelques résultats d'arithmétique un peu plus avancés (théorème d'Euler).
Ceci nous permettra de comprendre le chiffrement RSA, et d'utiliser OpenSSL pour décortiquer une clef privée.

De la construction des réels à la norme IEEE 754

11 avril 2020 — Introduction, Python

Connaissez-vous le module fractions de Python ? Je l'utilise ici pour présenter une construction des nombres réels.
Nous verrons également comment les ordinateurs manipulent ces nombres et pourquoi 0.1 + 0.2 ne donne pas toujours le résultat attendu...

Arithmétique des entiers, base64 et algorithme d'Euclide

11 avril 2020 — Introduction, Python

Pour cette première entrée sur le thème des nombres avec Python, nous allons parler d'entiers, de binaire, de base64, de nombres premiers et poser les bases d'arithmétique qui nous serviront ensuite.