Loin d’être élémentaire, le mécanisme qui sur les machine réelle générait l’incrémentation des Rotors risque fort de nous donner pas mal de « fil à retordre ». En effet, ce n’est pas du tout aussi simple qu’un compteur numérique en base 26 et ce pour plusieurs raisons. La première réside dans le fait que pour chaque Rotor installé sur la machine, il engendre le mouvement pour la roue voisine à sa gauche pour des transitions différentes. Et encore, ne nous plaignons pas. Pour la machine émulée dans ce didacticiel, les Rotors n’engendrent qu’une seule incrémentation par tour contrairement aux extensions disponibles sur d’autres versions. Le tableau de la Fig.100 précise pour les cinq éléments de notre « magasin » les lettres d’incrémentations sur la bague.
Exemple pour le Rotor III :
Quand l’encoche d’entrainement est en D, c’est la lettre V de la bague extérieure qui est visible sous la fenêtre de la machine. Lorsque ce Rotor III passe de V à W il entraine en rotation l’élément situé à sa gauche.
Autre exemple : Supposons que le Rotor I est au centre. Son encoche est en Y. Si cette encoche est positionnée devant le cliquet, la lettre Q est visible dans la petite fenêtre. Par conséquent, le rotor à gauche du Rotor I (Donc celui tout à gauche du Brouilleur.) avancera si ce dernier passe de Q à R.
Le double pas.
L’ensemble des trois Rotors semble fonctionner comme un « compteur kilométrique » avec des rouages qui présenteraient 26 positions par cycle, et l’élément des unités (Le rotor le plus à droite) qui s’indexerait à chaque touche activée sur le clavier. La roue du centre serait incrémentée chaque fois que les « unités » effectuent un tour complet. Puis celle de gauche chaque fois que le Rotor du centre boucle à son tour un cycle de 26 lettres. Mais il y a une différence importante résultant du mécanisme des cliquets et de la denture. Le Rotor du milieu avance une deuxième fois de suite sur le pas suivant du Rotor de droite, si le Rotor du centre est dans sa propre position de rotation. C’est ce que l’on nomme le double pas.
Exemple d’une telle séquence lorsque les éléments I – II – III sont installés dans cet ordre :
Comme on le constate, passer de V à W engendre la rotation de l’élément central. Hors ce mouvement place un E sous la fenêtre. Donc son encoche M est alors « armée ». Du coup, lettre suivante quand le rotor rapide passe de W à X, le Rotor central est à nouveau sollicité et passe de E à F. C’est la conception mécanique des cliquets et des dents le loup qui engendre ce comportement assez singulier nommé double pas. Ce type de mécanisme est utilisé sur l’Énigma de la Wehrmacht et de la Kriegsmarine (Donc celle que nous allons simuler.) mais pas sur le modèle G.
RESUMÉ :
• Le Rotor de droite tourne à chaque caractère.
• Lorsque la bague transite de la « lettre encochée » à la suivante, le Rotor central s’incrémente.
• Si par cette incrémentation le Rotor du centre présente alors sa « lettre encochée », alors le caractère suivant engendrera sa double incrémentation.
Deux petits plus pour agrémenter l’ordinaire.
C’est P12_Mouvement_des_trois_Rotors.ino qui va se charger d’introduire dans la structure immatérielle de notre codeuse les mécanismes qui animent en rotation les trois Rotors. On se doute que cette cinématique virtuelle intègrera le « Double pas », thème de ce chapitre. Lors de cette nouvelle modification du logiciel, deux options secondaires se sont avérées bien utiles et ont été émulées dans P12. Ce sont deux nouvelles commandes « luxueuses » et on peut parfaitement s’en passer. Toutefois, comme les évaluations actuelles supposent que l’on va disposer de la place à revendre, on peut se permettre de dilapider notre richesse, quitte plus tard à enlever ces petites améliorations si le besoin s’en fait sentir. La première option concerne surtout les programmeurs, raison pour laquelle elle est suspendue par défaut. Elle permet comme montré sur la Fig.101 de préciser en fonction des Rotors installés dans le Brouilleur leurs « lettres encochées » qui engendrent les mouvements à gauche de l’élément considéré. L’extrait de la Fig.101 montre dans la zone rose la nouvelle information qui sera affichée si avec la commande ‘*’ on valide cette option. Ce caractère a été choisi car aucune lettre disponible ne pouvait faire allusion à Encochage. Comme c’est la dernière configuration enregistrée en EEPROM qui est présente, ce sont dans l’ordre les Rotors V, IV et III qui sont installés dans le Brouilleur. L’affichage de l’Encochage indique les « lettres d’incrémentation » qui sont indépendantes de l’Indexation interne des Rotors ou de leur orientation au cours de l’utilisation de la machine. Ces trois lettres sont à comparer avec celles pour V, IV et III du tableau de la Fig.100 proposé en page précédente. L’autre option qui a été ajoutée au Menu de base est déclenchée avec la nouvelle commande ‘d‘. Elle permet d’imposer à Énigma l’Initialisation par défaut du simulateur [Énigma] que l’on utilise comme référence et qui a déjà été plusieurs fois installé sur la machine.
MANIPULATIONS :
01) Téléverser P12 sur la carte Arduino NANO et activer le Moniteur de l’IDE à 57600 baud.
Noter dans le Menu de base les deux nouvelles commandes ‘*‘ et ‘d‘. Remarquer au passage que les commandes sont maintenant listées dans l’ordre alphabétique ce qui est plus rationnel.
02) Frapper ‘*‘ pour valider l’affichage de l’Encochage.
03) Proposer ‘c‘ pour faire afficher la configuration de notre prototype. On peut vérifier que les informations d’encochage sont bien [ZJV] conformément aux données attendues.
04) Réitérer ‘*’ pour suspendre cette nouvelle information.
05) Recommencer avec ‘c’ pour vérifier que cette option est à nouveau suspendue.
06) Réhabiliter la visualisation de l’Encochage, toujours avec la commande ‘*‘.
07) Commande ‘d‘ suivi de ‘x‘. Il ne se passe rien, car la réponse n’étant pas un ‘o‘ est considérée comme une NON confirmation.
08) On recommence avec ‘d‘ confirmé cette fois par ‘o‘. Conformément à nos attentes, la configuration actuelle est bien celle par défaut d’[Énigma] de référence.
09) Enchaîner les deux consignes ‘*’ puis ‘c‘ : L’encochage affiché est bien [QEV] correspondant à la nouvelle combinaison des Rotors installés sur le Brouilleur.
Une troisième option en promotion.
Vérifier le comportement de l’encliquetage virtuel impose de nombreuses manipulations à partir d’une configuration initiale. L’expérience montre qu’il faut souvent ne modifier que l’orientation des trois Rotors sans changer le reste de la configuration. Aussi, « j’ai craqué » et ajouté dans le Menu de base l’option ‘a‘ pour Arranger les Rotors. Cette commodité ne consomme que 112 octets dans la mémoire réservée au programme et 20 emplacements en mémoire dynamique. Il reste encore 1248 octets entre la PILE et le TAS. À ce prix il n’y a vraiment aucune raison de s’en priver.
MANIPULATIONS : (Suite)
10) Frapper la commande ‘a’ pour ouvrir la séquence d’orientation des trois Rotors.
11) Indiquer ‘s‘, puis ‘k‘ puis ‘f‘ par exemple.
12) Enfin, avec ‘c‘ faire lister la nouvelle configuration. Seules les trois orientations ont changé, ainsi que les trois premières lettres du GROUPE d’identification. Conviviale cette option …
Vérifier la rotation des deux rotors de droite avec influence du Double pas.
Commencer par les deux premiers Rotors est une approche à la fois simplifiée et historique. Simplifier est une évidence, car pour engendrer la rotation du Rotor de gauche il faut frapper 26 x 26 soit 676 lettres sur le clavier virtuel de la machine. Historique, car pour diverses raisons de sécurité des transmissions secrètes, les opérateurs manipulant Enigma avaient pour consigne d’éviter les textes trop longs et scinder les transmissions longues en plusieurs messages courts, chacun indépendant avec son groupe d’identification et son préambule associé.
MANIPULATIONS : (Suite)
• Commençons par un test simple sans Double pas. Le logiciel est en mode COMMANDE.
13) On impose « er » pour imposer une initialisation quelconque.
14) Puis frapper dans l’ordre ‘3‘, ‘5‘, ‘2‘, ‘1‘, ‘1‘, ‘1‘, ‘p‘, ‘n‘, ‘c‘ et ‘b‘ par exemple.
15) Par précaution : ‘s‘ suivi de ‘o‘ pour sauvegarder en EEPROM.
16) Passer en CRYPTAGE avec ‘&‘.
17) Proposer la suite ‘w‘, ‘w‘, ‘w‘, ‘w‘, ‘w‘ pour réaliser le test. (1)
18) Conditionner de façon identique l’[Énigma] de référence. Effectuer la manipulation analogue
pour vérifier que les deux machines fournissent des résultats identiques.
• Effectuons maintenant un test avec intervention du Double pas.
19) Revenir au mode COMMANDE avec ‘&‘.
20) Proposer ‘a’ suivi de ‘g‘, ‘y‘, ‘c‘ pour placer la machine en « configuration de Double pas ».
21) Reprendre le CRYPTAGE avec ‘&‘.
22) Pour le message indiquer ‘w‘, ‘w‘, ‘w‘, ‘w‘, ‘w‘.
23) Il est incontournable d’effectuer des manipulations identiques sur l’[Énigma] de référence.
• Réalisons un test sans le Double pas avec mouvement du Rotor de gauche.
24) Sortir du CRYPTAGE avec ‘&‘.
25) Proposer ‘a’ suivi de ‘n‘, ‘z‘, ‘b‘ pour cette vérification.
26) Retour en CRYPTAGE avec ‘&‘.
27) Suite ‘w‘, ‘w‘, ‘w‘, ‘w‘, ‘w‘ pour le jeu d’essais.
28) On se doute qu’il faut comparer ce comportement avec celui de l'[Énigma] de référence dont on se contente de recaler manuellement l’orientation des trois Rotors.
(1) : Touche ‘w‘ car peu utilisée en Français pour « économiser le clavier ».
MANIPULATIONS : (Suite)
• Autre vérification qui engendre le mouvement des trois rotors à la première lettre frappée.
29) Sortir du CRYPTAGE avec ‘&‘.
30) Proposer ‘a‘ suivi de ‘g‘, ‘z‘, ‘a‘ par exemple.
31) Revenir en CRYPTAGE avec ‘&‘.
32) Suite avec ‘w‘, ‘w‘, ‘w‘, ‘w‘, ‘w‘, ‘w‘ pour le jeu d’essais.
33) Comme à chaque fois on compare ce comportement avec celui de l’[Énigma] de référence.
• Tester avec V à droite car il transite de Z vers A donc passe « de la fin au début ».
34) Retour au mode COMMANDE avec ‘&‘.
35) Frapper « er » pour imposer une nouvelle initialisation.
36) Proposer dans l’ordre ‘4‘, ‘3‘, ‘5‘, ‘1‘, ‘1‘, ‘1‘, ‘f‘, ‘j‘, ‘x‘ et ‘c‘ par exemple.
37) Pour la forme ‘*‘ suivi de ‘c‘, et vérifier [JVZ].
38) Par précaution : ‘s‘ suivi de ‘o‘ pour sauvegarder en EEPROM.
39) On va chiffrer avec ‘&‘.
40) Message abscons ‘w‘, ‘w‘, ‘w‘, ‘w‘, ‘w‘, ‘w‘ pour tester.
41) Pour terminer cet essai on compare avec [Énigma] de référence que l’on initialise entièrement. (N’oubliez pas de changer le réflecteur et de prendre le C)
• Tester avec V à droite et intervention du Double pas.
42) Sortie avec ‘&‘ suivi de ‘a‘ associé à ‘f‘, ‘u‘, ‘x‘.
43) On recommence les consignes ‘&‘, ‘w‘, ‘w‘, ‘w‘, ‘w‘, ‘w‘, ‘w‘ pour expérimenter.
44) Incontournable comparaison avec [Énigma] de référence dont on a réorienté les Rotors.
• On réitère la combinaison des trois rotations sur la première lettre frappée.
45) Touche ‘&’ pour le mode COMMANDE suivi de ‘a’ associé à ‘q’, ‘v’, ‘x’.
46) Et l’inévitable comparaison avec [Énigma] dont on a replacé les Rotors.
La suite est ici.