Remplissage (cryptographie)
De Wikipédia, l'encyclopédie libre
De Wikipédia, l'encyclopédie libre
En cryptographie, le remplissage ou bourrage (padding) consiste à faire en sorte que la taille des données soit compatible avec les algorithmes utilisés. Un grand nombre de schémas cryptographiques décrivent des algorithmes qui utilisent un partitionnement en blocs de taille fixe. Si la taille des données n'est pas un multiple de la taille d'un bloc alors l’utilisation d’un schéma de remplissage doit être envisagé.
Historiquement, le remplissage était utile pour contrer la cryptanalyse.[réf. nécessaire] Plusieurs algorithmes classiques placent le texte en clair dans des grilles rectangulaires ou carrées. Il faut dès lors remplir les cases manquantes et on utilise pour cela du texte aléatoire destiné à rendre l'analyse plus pénible.
En cryptographie moderne, le remplissage apparaît dans plusieurs primitives et concepts :
Le remplissage doit suivre certaines contraintes pour éviter des attaques. Dans le cadre des fonctions de hachage, on peut appliquer un renforcement de Merkle-Damgård qui consiste à ajouter un 1, une suite de 0 et finalement la taille du message à hacher. Si l'on se contentait d'ajouter uniquement des 0, les messages "000" et "0000" produiraient le même condensé ce qui est totalement incompatible avec la notion de résistance à la préimage des fonctions de hachage cryptographique.
Le standard PKCS définit des remplissages qui évitent des attaques potentielles dans le cadre de la cryptographie asymétrique[2].