La nema


Pr�sentation

La 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.

Simulateur

Le 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.

L'archive

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.
Cet article d�crit le fonctionnement de la NEMA. Gr�ce � lui, j'ai pu �crire rapidement mon simulateur sans �tre oblig� d'inspecter en d�tails une vraie machine.

Liens