Matrice MDS
From Wikipedia, the free encyclopedia
En algèbre et en cryptologie, une matrice MDS est une matrice possédant des propriétés particulières liées aux codes optimaux[1]. Les propriétés de ces matrices sont particulières et bien connues, ce qui participe notamment à l'analyse des algorithmes de chiffrement par bloc qui les utilisent. Plus précisément, dans une série d'articles scientifiques portant sur les propriétés des réseaux de substitution-permutation, Heys et Tavares[2],[3] ont montré que remplacer la couche de permutation par une couche linéaire de diffusion améliorait la résistance aux attaques cryptanalytiques, notamment la cryptanalyse linéaire et différentielle[4]. Pour cette raison, le terme de « matrice de diffusion MDS » est parfois employé.
Du fait de ces propriétés, les matrices MDS sont au cœur de la conception ou de l'analyse des algorithmes modernes de chiffrement par bloc, dont AES, SHARK[5], Square, Twofish[6], Anubis, KHAZAD, Manta, Hierocrypt, Kalyna et Camellia. Les matrices MDS interviennent également, quoique de manière moins systématique, dans le design de certains algorithmes de hachage (par exemple Whirlpool).
Soit un corps fini, et une matrice à coefficients dans . On dit que est une « matrice (de diffusion) MDS » si le code de matrice génératrice , où est la matrice identité, est un code MDS[Note 1]. Il existe plusieurs définitions équivalentes, qui peuvent être utilisées pour construire de telles matrices explicitement (voir ci-dessous) ; notamment, une matrice est MDS si et seulement si tous ses mineurs sont inversibles.
Par extension, on appelle encore matrice MDS les matrices binaires obtenues via une réalisation du corps sur le corps .