ShiftRow fait partie, avec MixColumn de la couche de diffusion.
Le but est d'introduire de la confusion dans les données en modifiant l'ordre des bits.
Pour cela, un simple décalage (Shift) est fait sur chaque ligne (Row) du bloc de données
On utilisera par la suite la matrice A représentant le bloc de données initial, ici on portera notre intérêt sur les indices des éléments.
La modification opérée par ShiftRow est très simple à comprendre et très simple à mettre en oeuvre.
Elle effectue un décalage ligne par ligne. La première ligne étant décalée de 0, la seconde de 1 et ainsi de suite.
On peut le faire dans un programme informatique de plusieurs façons.
Si chaque élément, de gauche à droite et de haut en bas est noté de 1 à 16, alors on peut utiliser un tableau de correspondance.
Cela permet facilement et directement de donner ses nouvelles coordonnées à chaque élément.
Dans la partie application de ce site, ce même tableau fait la correspondance avant/après l'opération.
ex :
On peut voir rapidement qu'il est facile d'inverser ShiftRow.
Le tableau utilisé précédemment peut être utilisé dans les deux sens.