Le reseau de feistel

Description

Dans cet exercice, nous considérons le réseau de Feistel qui prend un bloc de 16 bits et une clé de 16 bits et qui se base
sur une fonction f définie de la manière suivante :
 f(Ki;Ri) = P(S(Ki  E(Ri)))
 S(b1b2b3b4b5b6b7b8; b9; b10; b11; b12) = x1x2x3x4x5x6x7x8x9, avec
x1x2x3 = S1[b1; b2b3b4]
x4x5x6 = S2[b5; b6b7b8]
x7x8x9 = S3[b9; b10b11b12]
À noter que lamanipulation de S1, S2 et S3 est similaire à celle des SBox utilisés par DES. Par exemple, S1[b1; b2b3b4]
représente le contenu de la case du tableau S1 dont la ligne est donnée par b1 et la colonne est donnée par b2b3b4
(en decimal).
S1 = 001 011 000 101 111 110 100 010
010 110 101 011 001 100 000 111
S2 = 101 111 011 001 000 010 110 100
111 101 100 000 011 010 001 110
S3 = 101 111 011 001 000 010 110 100
001 011 010 111 000 101 110 100
 P(b1b2b3b4b5b6b7b8b9) = b4b1b5b6b3b8b2b9
 E(b1b2b3b4b5b6b7b8) = b8b1b2b3b5b4b5b6b8b7b8b1
 Pour trouver le bit j de Ki ( clé de l’itération i), on utilise la formule suivante : Ki[j] = K[(j  37+61  i)mod 16]
(en d’autres termes, le bit qui a la position j dans le clé Ki est celui qui a la position (j  37 + 61  i)mod 16 dans
la clé K ).

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.