Purple


Présentation

La machine à chiffrer Purple est une machine à chiffrer japonaise. Elle était utilisée entre les différentes ambassades japonaises avant et pendant la 2ième guerre mondiale. Les américains avaient réussi à la reconstituer et ils dechiffraient l'ensemble des messages chiffrés par ce moyen.

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

En argument, on donne: la position des switchs, ensuite leur mouvement (rapide,moyen,lent), ensuite les alphabets (pour les sixes et les twenties), et enfin le mode (E: chiffrement, D: déchiffrement).

L'archive contient le simulateur sous forme de fichiers .py et le répertoire SSW contient les fichiers qui mémorisent le cablage des switchs.

Dans l'exemple suivant, on reproduit le déchiffrement fournit par Frode Weirund:

Voici la clé utilisée:
Sixes=9
Switch #1=1
Switch #2=24
Swithc #3=6
Motion=231
Alphabet:  NOKTU (Sixes),   XEQLHBRMPDICJASVWGZF (twenties)

L'archive

Exemple d'utilisation:

C:\purple>dir SSW /w
 Le volume dans le lecteur D s'appelle DATA
 Le numéro de série du volume est 9A86-5488

 Répertoire de C:\purple\SSW

[.]           [..]          switch0.ssw   switch1.ssw   switch2.ssw
switch3.ssw
               4 fichier(s)            5 350 octets
               2 Rép(s)  653 806 223 360 octets libres

C:\purple>more part1.txt
ZTXOD NWKCC MAVNZ XYWEE TUQTC IMNVE UVIWB LUAXR RTLVA
RGNTP CNOIU PJLCI VRTPJ KAUHV MUDTH KTXYZ ELQTV WGBUH FAWSH
ULBFB HEXMY HFLOW D-KWH KKNXE BVPYH HGHEK XIOHQ HUHWI KYJYH
PPFEA LNNAK IBOOZ NFRLQ CFLJT TSSDD OIOCV T-ZCK QTSHX TIJCN
WXOKU FNQR- TAOIH WTATW VHOTG CGAKV ANKZA NMUIN

C:\purple>python purple.py 9:1:24:6 2,3,1 NOKTYUXEQLHBRMPDICJASVWGZF D < part1.txt
FOVTATAKIDASINIMUIMINOMOXIWOIRUBESIFYXXFCKZZRDXOOVBTNFYXFAEMEMORANAUMFIOFOVOOMOJ
IBAKARIFYXRXICCYLFCBBCFCTHEGOVE-NMENTOFJAPANLFLPROMPTEDBYAGENUINEDESIRETOCOMETOA
NAMICAALEUNDERSTANDIN-WITHTHEGOZERNMENTOFTHE-NITEDSTATESLNORDERTHATTHETWOCO

C:\purple>python purple.py 9:1:24:6 2,3,1 NOKTYUXEQLHBRMPDICJASVWGZF D < part1.txt > part1.cry

C:\purple>python purple.py 9:1:24:6 2,3,1 NOKTYUXEQLHBRMPDICJASVWGZF E < part1.cry
ZTXODNWKCCMAVNZXYWEETUQTCIMNVEUVIWBLUAXRRTLVARGNTPCNOIUPJLCIVRTPJKAUHVMUDTHKTXYZ
ELQTVWGBUHFAWSHULBFBHEXMYHFLOWD-KWHKKNXEBVPYHHGHEKXIOHQHUHWIKYJYHPPFEALNNAKIBOOZ
NFRLQCFLJTTSSDDOIOCVT-ZCKQTSHXTIJCNWXOKUFNQR-TAOIHWTATWVHOTGCGAKVANKZANMUIN

Références

PURPLE Revealed: Simulation and Computer-aided Cryptanalysis of Angooki Taipu B Wes Freeman,1 Geoff Sullivan 2 and Frode Weierud 3, Cryptologia, 2003, 27(1) 1-43.
Cet article décrit le fonctionnement de la machine Purple. Grâce à lui, j'ai pu écrire rapidement mon simulateur sans trop de problèmes.

Liens