Documentation

Le Sphinx

Introduction

Le Sphinx est un dispositif cryptographique de poche, développé vers 1930 par la Société des Codes Télégraphiques Georges Lugagne à Paris (France). Cette machine était annoncée comme une méthode d'écriture secrète servant à l'envoi de télégrammes (radio), et peut uniquement servir au chiffrage de lettres (les chiffres et symboles spéciaux ne sont pas intégrés à la machine).

L'appareil se compose d'un cadre métallique avec dix voies, chacune contenant deux bandes mobiles avec des alphabets mélangés. Les 20 alphabets transposés sont identifiés par un numéro, imprimé en rouge, et sont toujours utilisés par paires, l'alphabet supérieur représentant le texte clair et l'alphabet inférieur est utilisé pour représenter le texte chiffré. Ces alphabets sont représentés ci-dessous.

1

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

2

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

A

B

3

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

A

B

C

D

4

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

A

B

C

D

E

F

5

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

A

B

C

D

E

F

G

H

6

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

A

B

C

D

E

F

G

H

I

J

K

L

7

P

Q

R

S

T

U

V

W

X

Y

Z

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

8

R

S

T

U

V

W

X

Y

Z

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

9

T

U

V

W

X

Y

Z

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

10

V

W

X

Y

Z

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

11

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

12

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

13

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

14

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

15

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

O

N

M

16

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

S

R

Q

P

17

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

U

T

18

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

W

V

19

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Y

X

20

Y

X

W

V

U

T

S

R

Q

P

O

N

M

L

K

J

I

H

G

F

E

D

C

B

A

Z

Fonctionnement

Chiffrement

Le chiffrement sphinx est composé de 2 étapes majeurs : le placement des bandes et le chiffrement du message.

Placement des bandes : La machine Sphinx est composée de 20 bandes, et la manière dont elles sont positionnées a un impact sur le résultat du message chiffré. Ainsi, soit on décide de placer arbitrairement les bandes, soit on les place dans un autre précis en fonction du contexte. L'ordre de placement des bandes correspond à la clé de chiffrement, c'est-à-dire à l'information qui nous permettra de déchiffrer un message.

Chiffrement du message : Une fois les bandes placer il faut chiffrer le message souhaité. Pour cela il faut placer chaque lettre du message au niveau de la case/encoche prévu à cet effet sur la partie haute de la machine en utilisant les bandes du haut. Le déplacement de la bande du haut engendre le déplacement de la bande du bas à laquelle elle est reliée, ainsi on va pouvoir lire la lettre au niveau de la case/encoche du bas, qui correspondra à la lettre chiffrée. Ensuite il faudra répeter le processus pour les 9 prochaines lettres du message à chiffrer avec les autres couples de bandes. Après être arrivé au bout des 10 bandes, on recommence le processus en reprenant la première bande et en prenant la onzième lettre, et ainsi de suite jusqu'à avoir chiffré tout le message (il est donc important de noter le résultat de chaque opération au fur et à mesure).

Machine Sphinx
Photo de la machine Sphinx
Source: cryptomuseum.com

Exemple

Dans l'exemple ci-dessous, le texte en clair ICI AGENT AS se chiffre en BADOCDPHDZ avec cette configuration de bande. Les deux lignes jaunes représentent les cases/encoches de la machine Sphinx.
Cette configuration de bande peut être représenté par la clé (3, 13) (8,15) (5,12) (1,16) (6,19) (7,17) (10,14) (4,18) (2,11) (9,20). La clé se construit de la manière suivante, on représente chaque couple de bande par leur numéro, et on les écrits dans l'ordre dans lequel ils sont positionnés dans la machine (ici le couple (5, 12) est le troisième couple de bande en partant de la gauche).

Machine Sphinx
Exemple de chiffrement Sphinx

Déchiffrement

Pour déchiffrer un message chiffré avec la machine Sphinx, il y a deux options : le déchiffrement avec clé et sans clé.

Déchiffrement avec clé : Cette méthode est la plus simple, elle utilise le même principe que la méthode de chiffrement, il va tout d'abord falloir placer les bandes numérotées, en fonction de la clé reçu (voir section précedente), puis il va falloir aligner les lettres du message chiffré avec les cases/encoches du bas de la machine (en se servant des bandes du bas), afin de pouvoir lire la lettre correspondante sur la partie du haut. Sans oublier que la lettre numéro n doit être déchiffré avec le couple de bande numéro n%10 (si n%10 est différent de 0, sinon choisir le couple numéro 10).

Exemple: la lettre numéro 26 doit être déchiffré avec le couple de bande numéro 6

Déchiffrement sans clé : Cette méthode est plus complexe, elle va se diviser en deux étapes, la première sera de trouver la clé de chiffrement, et la seconde consistera simplement à suivre les indications du déchiffrement avec clé, décrit ci-dessus. Pour tenter de trouver la clé, il faut tout de même avoir quelques informations, soit avoir une partie de la clé, soit avoir une partie du message que l'on souhaite déchiffré en clair (généralemnt le début ou la fin), soit avoir les deux à la fois. Prenons un exemple courant, on possède les premières lettres en clair du message à déchiffrer, il faut alors pour chaque lettre, la faire correspondre avec sa valeur chiffré afin d'obtenir un couple de lettre (ex: la 3ème lettre chiffré avec la 3ème lettre en clair). Pour chaque couple de lettre (ex:(A,B)) il faut regarder pour chaque bande, la position de A et regarder si une autre bande contient la lettre B à la même position. Si tel est le cas il faut noter le couple de bande où l'on a trouvé cette correspondance.

Astuce: Pour faire cette manipulation à la main, il est conseillé d'avoir les 20 bandes alignées devant soit, et de vérifier si les lettres A et B sont alignées horizontalement (on peut utiliser une règle pour faciliter la lecture).

Il faut ensuite répéter l'opération décrite précedement pour chaque lettre du message en clair connue. Une fois les listes de couples de bandes dressées, on peut essayer d'en déduire les bons couples de bandes (les fragments de la clé). Pour cela la première étape consiste à éliminer des listes les couples de bandes comportant un numéro de bande dont le couple est déja connu (seulement si des couples connus sont donnés où que l'on a déja fait des déductions).

Ensuite il va falloir vérifier si certaines listes ne contiennent qu'un élement, si tel est le cas alors cet élement est un des couples de bandes recherché, il faut alors ré-itérer l'étape précedente et supprimer les couples de bandes dans les listes qui contiennent une des bandes du couple trouvé, et ainsi de suite jusqu'à les avoir tous trouvés. Afin de savoir à quelle position placer le couple de bande trouvé dans la machine Sphinx, il faut simplement regarder la position du couple de lettre qui a permit de déduire le couple de bande dans le mot. Par exemple si la lettre qui a permi de déduire le couple de bande est en position 4 dans le message chiffré, alors le couple de bande devra être placé en position 4.
Si malheureusement cette technique ne permet pas de trouver une clé complète, il va falloir faire des suppositions de couples valides, et vérifiés si ils sont corrects ou non, mais cela reste assez difficile. Ainsi, si on ne possède pas suffisement d'informations, le déchiffrement sans clé peut s'avérer très compliqué, et le seul moyen serait de tester toutes les possibilitées une à une.

Exemple

Reprenons le même cas que pour l'exemple sur le chiffrement, essayons en nous appuyant sur la figure ci-dessous de trouver la liste des couples de bandes possibles pour le couple de lettre B I. Premièrement, on va repérer toutes les lettres B et I présentes, elles vont nous permettre en regardant leur alignement , de déduire la liste de couples suivante : (5,11) (4,12) (3,13) (2,10) (2,14) (16,10) (16,14) (1,9) (17,15) (17,8) (18,7) (10,16) (9,6) (8,17) (7,5) (11,5) (7,18) (11,18) (12,4) (12,19) (13,3) (13,20) (14,3). Cette liste est assez longue, et avec seulement cette information il est difficile de faire des déductions.

On peut alors supposer que les bandes du haut seront forcement numérotées de 1 à 10 et les bandes du bas de 11 à 20 (comme c'est le cas dans le générateur d'énigme). Alors on peut éliminer tout les couples qui ont leur premier chiffre supérieur à 10 (les bandes du haut, correspondant au premier chiffre des couples, sont comprises entre 1 et 10) et tout les couples qui ont leur second chiffre inférieur à 11 (les bandes du bas, correspondant au second chiffre des couples, sont comprises entre 11 et 20). On peut également éliminer tout les couples ayant deux bandes comprises entre 1 et 10 ou deux bandes comprises entre 11 et 20.

Ainsi la liste des couples pour les lettres B et I se résume à (5,11) (4,12) (3,13) (2,14) (10,16) (8,17) (7,18). Supposons qu'un couple de bande nous est également donné, par exemple (5,12), alors on peut éliminer de la liste les couples (5,11) et (4,12) qui contiennent 5 et 12 (chaque bande est utilisée exactement une fois). En effectuant ce genre de traitements avec plusieurs couples de lettres, on peut arriver à déduire tout les couples de bandes (pour le couple BI, le couple de bande correspondant est (3,13)).

Machine Sphinx
Illustration de la technique de déchiffrement