Théorie des nombres en Python
Tutoriels gratuits sur la théorie des nombres avec calcul assisté par machine
Dans le cadre d’une introduction à la théorie des nombres, les tutoriels gratuits du Dr Weissman se révèlent être une ressource précieuse : An Illustrated Theory of Numbers$^2$.
Ces tutoriels enrichissent l’approche théorique en proposant des exercices pratiques et des problèmes de programmation. Personnellement, j’ai trouvé cette méthode particulièrement bénéfique, car elle m’a permis d’appliquer les résultats dans des projets annexes.
Je n’ai pas encore eu l’occasion de consulter le livre original lié aux tutoriels, mais je prévois de m’y plonger. Pour l’instant, je me suis appuyé sur mes propres notes, ayant déjà étudié la théorie des nombres. Ces activités m’ont grandement aidé à établir des liens entre théorie et pratique.
$\rightarrow$ Lien pour la description des tutoriels disponibles gratuitement.
$\rightarrow$ Résumé rapide du contenu de ces tutoriels sur les notebooks :
Numeraties | 1,2,3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|
Sujets | Listes et quelques analyses de données. Découpage et compréhension des listes. Mise en place du crible d’Eratosthène. Optimisation et outil timeit. Analyse des données (sur l’ensemble des nombres premiers) avec un peu de matplotlib pour la visualisation. | Dictionnaires et décomposition des nombres premiers. Quelques généralités sur les objets et méthodes Python également, avec des exemples tirés de dictionnaires et de listes. Fonctions en tant qu’objets et implémentation de fonctions multiplicatives. | Tests d’arithmétique modulaire et de primalité. Zoom sur les algorithmes et l’analyse des performances. L’algorithme de Pingala pour l’exponentiation (carré successif) et un examen approfondi du test de primalité de Miller-Rabin. | Chiffrements et échange de clés Diffie-Hellman. Chiffres de César et de Vigenère. Travailler avec des chaînes et du code ASCII en Python. Une introduction aux cryptosystèmes à clé symétrique. Exponentiation modulaire et existence de racines primitives. Sophie Germain et safe primes. Échange de clés Diffie-Hellman | Le cryptosystème RSA. En rassemblant le tout, le théorème d’Euler pour l’exponentiation modulaire, le test de primalité pour la création de clés privées, l’algorithme euclidien pour les inverses modulaires. Certains problèmes de mise en œuvre, notamment la génération de clés aléatoires et le réseau de confiance. Comment utiliser RSA pour le chiffrement, ainsi que pour les signatures numériques. |
Le cryptage mentionné ici est basique, souvent appelé cryptage scolaire (comme le RSA primitif). Dans les systèmes réels, il faut utiliser des méthodes cryptographiques plus adaptées pour éviter les risques de sécurité.