L’exercice abordé dans le chapitre précédent montre que pour initialiser entièrement l’Enigma virtuelle, c’est pas moins de 39 entités alphabétiques ou numériques qu’il faut saisir tout en respectant avec rigueur un document tels que celui de la Fig.47 présenté en page 29. C’est tellement facile de se tromper de ligne, voir de commettre une erreur de frappe qui passe inaperçue dans l’analyseur syntaxique, que de ne pas avoir à reprendre l’intégralité du protocole pour corriger s’avère indispensable à la qualité opérationnelle de notre programme d’exploitation. C’est dans cette optique que la commande ‘e‘ a été insérée dans le MENU de base dès le début des études. C’est avec le démonstrateur P07_Editeur_de_correction_de_saisie.ino que l’on va développer cette facette du logiciel. Naturellement on va « se contenter de reprendre » P06 et y ajouter cette nouvelle fonction.
L’Editeur de la configuration d’Enigma.
Comme le démonstrateur P07 est bien plus complet que le simple ajout de la commande ‘e‘, il suppose qu’une INITIALISATION d’Énigma est disponible en EEPROM. Sous cette hypothèse il charge automatiquement cette dernière et après avoir affiché le MENU de base il liste l’état actuel de configuration de la machine. Comme pour le moment vous n’avez encore jamais sauvegardé une telle configuration, jusqu’à le faire il faudra ne pas s’étonner d’un affichage dont les valeurs sont nulles ou non affichées. Tout va rentrer dans l’ordre durant ce chapitre. Commencer par téléverser P07 et activer le Moniteur de l’IDE. On peut éditer la CONFIGURATION par « secteur » et dans un ordre quelconque. Par secteur il faut comprendre : [Rotors et Réflecteur], [Fiches croisées] ou [GROUPE d’identification]. Passons à l’expérimentation.
MANIPULATIONS :
01) Frapper « eg » et valider. (On est toujours le 12/02/1942.)
02) Entrer « iwqgfyoad » et valider. Dans cet exercice c’est volontairement que l’on s’est « trompé » et que le ‘f‘ a été saisi à la place du ‘w‘. (On ne donne pas les trois premières lettres.)
03) Proposer « ef » pour corriger le tableau des Fiches croisées.
04) C’est reparti pour « bj« , « çq« , « di« , « fm« , « go« , « hr« , « kw« , « py« , « tu« , « xz« . (La lettre ‘ç’ est acceptée et translatée en équivalent majuscule sans la cédille.)
05) Enfin on édite le Brouilleur avec « er » pour commencer par les Rotors.
06) Dans l’ordre on propose ‘4‘, ‘5‘, ‘3‘ puis « 26« , « 23« , « 7 » et terminer par ‘d‘, ‘l‘, ‘p‘. Pour mémoire ‘l‘ est un ‘L‘ minuscule dans cette série de lettres.
07) On complète avec ‘b‘ pour indiquer le Réflecteur.
On notera au passage que le GROUPE d’identification est entièrement initialisé, les trois premiers caractères correspondant à l’orientation initiale ont été recopiés en tête du GROUPE d’identification. On a « dans le désordre » corrigé entièrement la configuration initiale, vérifions une dernière fois la cohérence de l’ensemble avec la feuille de cryptage.
– Mazette, on s’est trompé dans le groupe d’identification ! (Voir la Fig51)
C’est dans ce genre de situation que l’on va apprécier l’éditeur de Configuration, car il n’y a pas à tout reprendre. On va se contenter de corriger uniquement le GROUPE d’identification.
08) Imposer « eg » puis « iwqgwyoad » pour réintroduire cette donnée.
09) C’est fait, la configuration de notre Énigma virtuelle correspond exactement à celle qui dans la feuille de cryptage occupe la ligne du 12/02/1942. Comme elle est cohérente et que l’on va certainement s’en servir par la suite, on frappe ‘s‘ et on confirme par ‘o‘. (Il y a demande de confirmation car il ne faudrait pas perdre un enregistrement en ayant par mégarde frappé la lettre ‘s’ durant le mode COMMANDES.)
11) Le programme est assez laconique, en principe c’est fait mais il ne le signale pas. Aussi, pour vérifier c’est facile : Effectuez un RESEET tout en ouvrant le Moniteur. Il suffit dans la fenêtre de l‘IDE de cliquer sur « Loupe« . Chic chic chic la configuration rechargée est correcte.
Restitution d’une sauvegarde EEPROM.
Recharger automatiquement le contexte lorsque l’on redémarre le programme d’exploitation sera généralement suffisant à l’usage. Il est peu vraisemblable que l’opérateur puisse par erreur fausser l’initialisation rechargée lors du RESET. Comme ce n’est jamais totalement exclus et pour éviter d’avoir à effectuer un RESET, on peut recharger à tout moment les données avec la commande ‘r‘. Le mieux consiste encore à expérimenter cette possibilité :
MANIPULATIONS : (SUITE)
12) Faire un RESET pour repartir sur une base commune.
13) Frapper « eg » et valider.
14) Entrer « aaacccbbb » et valider pour perdre le GROUPE d’identification.
15) On change d’idée pour revenir à la date du 12/02/1942. On frappe ‘r‘ et on confirme par ‘o‘. (Il y a demande de confirmation car il ne faudrait pas perdre une configuration en cours de modification en ayant par mégarde frappé la lettre ‘r‘ durant le mode COMMANDES.)
16) Proposer ‘&‘ Puis quelques lettres en validant à chaque fois pour tester le cryptage individuel.
17) Retour au mode COMMANDES avec ‘&‘ suivi de ‘t’ pour le mode cryptage « normal ».
18) Passage au chiffrage avec ‘&‘ puis le début du message secret « Bonjour les amis.« . On constate que le préambule est listé, puis à la ligne suivante commence le message crypté. (Ici les caractères sont simplement décalés d’une lettre. Les espaces et le point frappés par habitude sont ignorés.)
19) Continuer le message secret avec « Tout va bien il n‘y a pas de problème.« . L’apostrophe n’est pas accepté seuls les caractères qui précèdent sont transcodés.
20) On poursuit avec « yapasdeproblème. Fin de transmission.« . Ne comportant que des caractères valides le texte est crypté et « ajouté » au listage à l’écran.
21) Frapper ‘&‘ pour revenir au mode COMMANDE.
22) Frapper ‘&‘ pour coder un nouveau message puis « aaaaaaaaaazzzzzzzzzzeeeeeeeeee« .
23) Continuer avec « rrrrrrrrrrttttttttttyyyyyyyyyy« . (Dix lettres identiques à chaque fois.)
24) Finir avec « ooooooooooppppppppppqqqqqqqqqqssssssssssdddddddddd« .
Un nouveau bilan sur l’évolution du programme.
À ce stade du développement on dispose de pratiquement tous les éléments fonctionnels virtuels de la machine mis à part le mécanisme qui fait tourner les Rotors. On va pouvoir commencer à câbler virtuellement cette Énigma immatérielle. Avant de commencer cette nouvelle phase dans notre projet, un bilan me semble salutaire. Avant de modifier P07 directement issu de P06, le programme occupait 26% de la place réservée au programme. En ayant ajouté l’Editeur de configuration j’étais pessimiste en affirmant que ce dernier risquait de se montrer boulimique. Au final il ne « gloutonne » que 214 octets soit à peine 1% de l’espace réservé. Surtout, la mémoire dynamique utilisée n’augmente que de huit Octets. C’est assez normal, car les nouveaux textes du dialogue ne font que remplacer certains qui étaient déjà dans le « Sketch ». En ajoutant les fonctions EEPROM, l’automatisation de la transmission en mode TEXTE du GROUPE d’identification pour toutes ces fonctions on « consomme à peine » 664 Octets. Nous avons encombré moins du tiers de l’espace réservé au programme, autant dire qu’il en reste à mon avis largement plus qu’il n’en faut pour émuler la machine. Donc, ce jour du  » 12/02/1942  » je suis serein et l’on va enfin pouvoir passer au développement de CRYPTAGE proprement dit. On va y aller progressivement en commençant par les fonctions qui me semblent les moins compliquées pour terminer par les plus critiques.
La suite est ici.