Cifrado de números por un método de Feistel

Chapitre: XV. Criptografía moderna Prérequis: -

He aquí una puesta en práctica javascript de una red de Feistel a 16 rondas para el cifrado de números enteros positivos (incluida entre 0 y 999' 999' 999). Este programa puede por ejemplo servir para calcular números de tarjetas de crédito, números de teléfono, etc (a condición de que no comienzan por "0").

Para calcular

Corte su número en dos bloques que pondrán en las casillas G0 y D0 ("G" para izquierda y "D" para derecha, "0" siendo el número de la ronda), luego escriben su clave (que es un número también entero positivo más pequeño que 1' 000' 000' 000). Los números calculados aparecerán en las casillas G16 y D16.

Para descifrar

Ponga sus dos números en las casillas G0 y D0, luego escriben su clave. Los números descifrados aparecerán en las casillas G16 y D16.

Entrada G0 D0
Clave
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
Salida G16 D16


Didier Müller, 6.2.02