Méthodes de chiffrement Poly-alphabétique
Solitaire (Pontifex)
Chiffre de flux opérant sur un jeu de 54 cartes (52 + 2 jokers). Conçu pour produire un OTP utilisable sans ordinateur — l'agent de terrain manipule physiquement les cartes pour générer la clé.
- Famille :
- Poly-alphabétique
- Difficulté :
- Avancé
- Époque :
- 1999, Bruce Schneier (pour Cryptonomicon de Neal Stephenson)
- Inventeur :
- Bruce Schneier
Aussi appelé : Pontifex cipher · Schneier card cipher · chiffre des cartes
Le chiffre Solitaire, aussi appelé Pontifex, a été conçu par Bruce Schneier en 1999 à la demande du romancier Neal Stephenson, pour que ses personnages de Cryptonomicon disposent d’une cryptographie portable, sans ordinateur, mais sérieusement résistante. Le résultat est un chiffre de flux dont l’unique support matériel est un jeu de 54 cartes (52 standards + 2 jokers).
Principe
Solitaire produit un keystream — une suite de valeurs entre 1 et 26 — par manipulation algorithmique du paquet, indépendamment du plaintext. La clé partagée entre émetteur et destinataire est l’ordre initial du paquet. Le chiffrement est ensuite un simple Vigenère sur ce flux :
cipher[i] = (plain[i] + stream[i]) mod 26
Le moteur
Chaque pas de l’algorithme exécute, sur le paquet :
- Déplacer le joker A d’une position vers le bas (cyclique).
- Déplacer le joker B de deux positions vers le bas.
- Coupe triple entre les deux jokers : permuter les segments avant et après les jokers.
- Coupe par la dernière carte : la valeur de la dernière carte donne un nombre
n; on déplace lesnpremières cartes juste avant la dernière. - Lecture du flux : la valeur de la première carte donne
m; on regarde la(m+1)-ième carte. Si c’est un joker, on recommence ; sinon, on extrait sa valeur modulo 26 → c’eststream[i].
Pour chiffrer un caractère, on exécute ces 5 étapes une fois ; le paquet est ainsi toujours différent à chaque caractère, ce qui garantit qu’un même plaintext ne se chiffre jamais deux fois pareil.
Valeur des cartes
Trèfle 1-13, Carreau 14-26, Cœur 27-39, Pique 40-52. Joker A = 53, Joker B = 53 (les jokers sont distincts mais ont la même valeur d’extraction). On réduit modulo 26 pour obtenir un décalage Vigenère 1-26.
Forces et faiblesses
Forces
- Aucun équipement électronique requis : un agent peut se cacher derrière un simple jeu de cartes anodin.
- Stream cipher à clé longue : 54! ≈ 2,3 × 10⁷¹ ordres initiaux possibles → espace de clés gigantesque.
- Réinitialisation triviale : remélanger le paquet selon une nouvelle convention partagée (mot-clé tapé à plat).
Faiblesses
- Non-uniformité du keystream — analyse statistique de Crowley, Stay et Hertz (2000) montre des biais détectables sur de longs textes.
- Lenteur : 5 manipulations par caractère → un agent entraîné chiffre péniblement 1 à 2 mots par minute.
- Erreur de manipulation = perte du sync : une seule étape mal exécutée corrompt tout le reste du message.
Cryptonomicon (2000)
Stephenson a intégré l’algorithme dans son roman comme fil narratif : un personnage hérite d’un message chiffré par son grand-père via Solitaire pendant la WWII, et doit le déchiffrer à la main avec un paquet de cartes. Le code source du chiffre est inclus en annexe du livre en Perl.
Le choix de Stephenson (et de Schneier) était délibérément pédagogique : montrer qu’un agent de terrain peut emporter un chiffre de qualité dans sa poche, sans laisser de trace électronique. C’est aussi le rappel que la cryptographie ne se résume pas aux algorithmes informatiques.
Sécurité réelle
Solitaire ne tient pas face à des attaques modernes pour des messages de plusieurs milliers de caractères : les biais statistiques permettent une attaque par distinction. Pour un message court (< 1000 caractères) et un paquet bien aléatoire, il reste pratiquement sécurisé contre tout adversaire qui ne dispose pas d’ordinateur.
Dans CipherChronicle
Solitaire incarne la cryptographie artisanale et tactile : des cartes, un papier, un message. Les grilles associées peuvent demander au joueur de simuler quelques pas de l’algorithme à la main (avec un paquet réel ou virtuel), pour comprendre comment un chiffre se construit pas à pas.
Grille
- 1
Texte chiffré
Quinze lettres dont la distribution est très plate — signature d'un chiffre de flux à clé longue.
- 2
Reconnaissance du motif
Pas de répétition à période fixe (Vigenère exclu). Le keystream change à chaque caractère.
- 3
Hypothèse : Solitaire avec un jeu initialement ordonné par mot-clé
La clé partagée est l'ordre initial des cartes ; chaque pas de l'algorithme produit un chiffre.
- 4
Soustraction du keystream
On reconstitue le keystream carte par carte et on soustrait modulo 26 du ciphertext.
- 5
Message révélé
Le plaintext apparaît dans son ordre d'origine.