Mastermind et cryptographie : l'art de casser un code secret
Trouver un code caché à partir d'indices partiels : c'est le mastermind, et c'est aussi, en beaucoup plus grand, le travail du cryptanalyste, celui qui cherche à lire un message chiffré sans en avoir la clé. Le jeu n'apprend pas la cryptographie, mais il en fait toucher du doigt quatre idées essentielles.
Idée 1 : l'espace des clés
La première question d'un cryptanalyste est : combien y a-t-il de clés possibles ? Au mastermind, c'est le nombre de codes.
| Secret | Possibilités |
|---|---|
| Chiffre de César (décalage de l'alphabet) | 25 |
| Mastermind Facile (4 pions, 6 couleurs, sans doublons) | 360 |
| Mastermind Classique (4 pions, 6 couleurs) | 1 296 |
| Code à 4 chiffres d'une carte ou d'un cadenas | 10 000 |
| Mastermind Extrême (5 pions, 10 couleurs) | 100 000 |
| Clé de 256 bits (chiffrement moderne) | environ 1077 |
Un code à 4 chiffres, c'est exactement un mastermind à 4 pions et 10 couleurs. Ce qui le protège n'est pas sa taille, minuscule, mais le fait que la carte ou le téléphone se bloque après quelques essais ratés.
Idée 2 : la force brute, et pourquoi elle ne suffit pas
La méthode la plus simple pour casser un code est de tout essayer. Contre le chiffre de César, qui décale chaque lettre de l'alphabet d'un nombre fixe de rangs, c'est immédiat : il n'y a que 25 décalages à tester.
Au mastermind, la force brute pure serait de proposer les codes un par un sans regarder les repères : jusqu'à 1 296 essais au format classique, alors que tu n'en as que dix ou douze. Le jeu t'oblige donc à faire ce que font les cryptanalystes : tirer parti de chaque réponse pour ne pas avoir à tout essayer.
La cryptographie moderne, elle, mise sur des espaces si grands que tout essayer est hors de portée : une clé de 256 bits offre 2256 possibilités, un nombre à 78 chiffres. Et surtout, un bon système ne répond rien d'utile à un essai raté.
Idée 3 : l'indice partiel qui trahit le secret
C'est là que le mastermind est le plus instructif. Le code n'est trouvable en cinq coups que parce que le jeu répond : tant de pions bien placés, tant de pions mal placés. Chaque verdict est une fuite d'information. Sans repères, il ne resterait que la force brute.
En sécurité informatique, on retrouve cette situation chaque fois qu'un système laisse échapper un indice sur un secret : un message d'erreur trop bavard, ou une vérification qui prend un peu plus de temps quand le début du mot de passe est bon. Un système qui dirait « trois caractères sont corrects » transformerait la recherche d'un mot de passe en partie de mastermind, et le secret tomberait en quelques dizaines d'essais au lieu de milliards. C'est pour cela qu'un système bien conçu répond seulement « correct » ou « incorrect ».
Les chiffres anciens ont été cassés de cette façon, par leurs fuites. Le chiffre de Vigenère, longtemps réputé indéchiffrable, utilise un mot-clé répété tout au long du message. Au XIXe siècle, Charles Babbage puis Friedrich Kasiski ont montré que cette répétition laisse des motifs réguliers dans le texte chiffré : on en déduit la longueur de la clé, puis la clé elle-même, lettre par lettre, grâce à la fréquence des lettres dans la langue.
Idée 4 : éliminer par contradiction
Le joueur de mastermind ne cherche pas directement le bon code : il écarte tous ceux qui contredisent un verdict déjà reçu. « Si le code était celui-ci, mon deuxième essai aurait eu deux noirs ; il en a eu un, donc ce n'est pas lui. »
Les cryptanalystes raisonnent de la même façon avec ce qu'ils appellent un mot probable : on suppose qu'un mot précis figure à un endroit du message, et on rejette toutes les clés pour lesquelles cette supposition mène à une impossibilité. Au XXe siècle, des mathématiciens comme Alan Turing ont rendu cette élimination systématique, au point de la confier à des machines. C'est aussi, à l'échelle d'un jeu, ce que fait l'algorithme de Donald Knuth : garder la liste des codes encore possibles et choisir l'essai qui la réduit le plus, voir l'algorithme optimal pour résoudre le mastermind.
Où la comparaison s'arrête
- Le mastermind est fait pour être cassé. Le codeur est obligé de répondre honnêtement à chaque essai. Un vrai système de chiffrement est conçu pour ne donner aucune réponse exploitable.
- Les tailles n'ont rien à voir. Entre 1 296 codes et 1077 clés, il n'y a pas une différence de degré mais de nature.
- Il n'y a pas de message. Au mastermind, on cherche la clé pour elle-même. En cryptanalyse, la clé n'est qu'un moyen de lire un texte.
Jouer au cryptanalyste
Trois façons de retrouver ces idées en jouant :
- Le mode Entraînement affiche le nombre de codes encore possibles : tu vois l'espace des clés fondre à chaque verdict.
- La page l'ordinateur devine inverse les rôles : tu choisis le secret, la machine le casse sous tes yeux.
- En mode Duel, tu composes toi-même un code que ton adversaire doit trouver : voir jouer au mastermind à deux.
La mesure de ce que rapporte chaque verdict est expliquée dans le mastermind et la théorie de l'information, et le raisonnement par élimination dans la logique de déduction au mastermind.