Cryptage de nombres par une méthode de Feistel

Voici une implémentation javascript d'un réseau de Feistel à 16 rondes pour le cryptage de nombres entiers positifs (compris entre 0 et 999'999'999). Ce programme peut par exemple servir à chiffrer des numéros de cartes de crédit, des numéros de téléphone, etc. (à condition qu'ils ne commencent pas par "0").

Pour chiffrer

Coupez votre nombre en deux blocs que vous mettrez dans les cases G0 et D0 ("G" pour gauche et "D" pour droite, "0" étant le numéro de la ronde), puis écrivez votre clef (qui est également un nombre entier positif plus petit que 1'000'000'000). Les nombres chiffrés apparaîtront dans les cases G16 et D16.

Pour déchiffrer

Mettez vos deux nombres dans les cases G0 et D0, puis écrivez votre clef. Les nombres déchiffrés apparaîtront dans les cases G16 et D16.

Entrée G0 D0
Clef
G1 D1
G2 D2
G3 D3
G4 D4
G5 D5
G6 D6
G7 D7
G8 D8
G9 D9
G10 D10
G11 D11
G12 D12
G13 D13
G14 D14
G15 D15
Sortie G16 D16


  Didier Müller, 24.1.21