PrésentationLa machine à chiffrer NEMA (NEue MAschine) est une machine à chiffrer SUISSE. Elle est entrée en fonction en 1947 pour remplacer l'Enigma qui était antérieurement utilisé par l'armée SUISSE. La NEMA ressemble énormément à l'Enigma. Elle posséde des rotors, un réflecteur. On saisie une lettre sur un clavier de machine à écrire et la lettre chifrée (ou déchiffrée) correspondante apparait sur un panneau grâce à une lampe. SimulateurLe simulateur suivant fonctionne en mode texte. Il est écrit en langage Python. En conséquence, un interpréteur de ce langage doit être installé. Il faut préciser via la commande SET PATH=... l'emplacement de l'interpréteur. L'archive contient le simulateur sous forme de fichiers .py et le répertoire rotors contenant les rotors et les roues entraineuses. L'archive a été crée par la commande ISO pax. Celle-ci est disponible (ou installable) sur les systèmes UNIX, Windows, etc... A défaut, on peut utiliser Winzip. Le programme groupe.py permet un affichage par groupe de 4 ou 5 lettres. Utiliser le mot help en argument pour en savoir plus. En mode debug, le simulateur affiche la position des ergots actifs des roues d'entrainement ainsi que la transformation de chaque rotor. Pour la roue d'entrainement numéro un (la roue rouge), les érgots sont données pour les deux plateaux gauche (L) et droit (R). Les rotors et les roues sont de simples fichiers. Il est facile d'en créer d'autres. Exemple d'utilisation:C:\>pax -r -f NEMA.TAR C:\>cd NEMA C:\NEMA>set PATH=%PATH%;C:\Program Files\Python C:\NEMA>python nemaTD.py syntax : nemaTD.py InternKey ExternKey [RedKey [debug]] Example: echo AAAAA | nemaTD.py 16:A:19:B:20:C:21:D CCCCCCCCCCC 23:02 PCCPX C:\NEMA>echo AAAAAA |python nemaTD.py 16:A:19:B:20:C:21:D CCCCCCCCCC 23:02 debug ['16', 'A', '19', 'B', '20', 'C', '21', 'D'] 23:02 CCCCCCCCCC 9 7 5 3 L R CCCCCCCCCC 0 1 1 0 1 1 0 BBCCCBCCBB A Q Q J O D < Q > V Y J R P 1 1 1 1 1 1 0 AACCBACCAA A Q Z L A N < B > Z D G F C 2 1 1 0 1 1 0 ZZCCBZCCZZ A Q N R Y P < X > S T E F C 3 0 1 1 1 1 1 ZYBBAYBBYY A Q D G V G < Q > Z S O R P 4 1 1 0 1 1 0 YXBBAXBBXX A Q F U T Y < Q > Z S O G X 5 1 1 1 1 1 0 XWBBZWBBWW A Q Z Y J N < A > S R V V Z 6 PCCPXZ C:\NEMA>python nemaTD.py 16:A:19:B:20:C:21:D SHAKESPEAR 23:02 < plain.txt | python groupe.py WINYA OTQIJ HXHWI GPRXB LRTNI WJSWB OAWEZ PBQQL FCXCI ZMQLD XOBOY ZQODI RTLHS HBOUP BUEXN QOOVI MCJGX CXJBL PNBJG OCGSB MIOUQ TOPKZ QJJVJ GXKNN GLXDV BOETT DRCUJ ETSWU TMYTB PZATA JLJJF MPCMI QOOVW ERPFN RFAWM CZUUT WEGXR VGNZQ UY C:\NEMA>python nemaTD.py 16:A:19:B:20:C:21:D SHAKESPEAR 23:02 WINYA OTQIJ HXHWI GPRXB PRTNI WJSWB ^Z TOBEORNOTTOBETHATISTSEQUESTION C:\NEMA>dir rotors /w Le volume dans le lecteur C n'a pas de nom. Le numéro de série du volume est BC20-30A6 Répertoire de C:\NEMA\rotors [.] [..] 01.drv 02.drv 12.drv 13.drv 14.drv 15.drv 16.drv 17.drv 18.drv 19.drv 20.drv 21.drv 22.drv 23.drv A.rot B.rot C.rot D.rot E.rot ETW.rot F.rot UKW.rot 22 fichier(s) 1 462 octets 2 Rép(s) 6 245 605 376 octets libres C:\NEMA>more rotors\02.drv 00000000001011001000000001 ABCDEFGHIJKLMNOPQRSTUVWXYZ = Nema - drive wheel 02 C:\NEMA>more rotors\A.rot RDPUMKVEQAOXYCWLFTNBZJHSGI = Nema Rotor - A = Références
Geoff Sullivan and Frode Weierud, The Swiss NEMA Cipher Machine,
Cryptologia, 23(4), October 1999, pp310–328.
Liens
|