PKCS # 1: Objectif de `Padding1` dans la méthode de codage EMSA-PSS
La partie centrale du RSASSA-PSSschéma de signature de PKCS # 1 est l' EMSA-PSSopération de codage, décrite dans la section 9.1 de la norme.
Cette méthode de codage utilise un remplissage (intitulé Padding1) qui est simplement huit zéro octets ( 0x00). La concaténation de ce remplissage, le hachage du message et le sel choisi au hasard sont ensuite hachés une fois de plus, formant une partie de la signature finale - voir par exemple le diagramme ASCII à la page 39.
Ce qui m'amène à ma question - quel est le but précis de ce rembourrage?
Le seul effet auquel je pourrais penser est qu'il garantit que - étant donné un sel vide et un message vide - l'entrée de la fonction de hachage ne sera pas vide. Cependant, cela semble douteux car toutes les fonctions de hachage que je connais fonctionneront très bien avec des entrées vides, et le hachage - qu'il s'agisse d'une chaîne d'octets vide ou d'une chaîne d'octets contenant 8 * 0x00- sera déterministe dans les deux cas.
Le but du deuxième remplissage - Padding2- est clair pour moi, car il garantit que la signature a la longueur souhaitée (définie par l'utilisateur), tout en étant simultanément structurée de sorte que le sel puisse être récupéré sans nécessiter de connaissance préalable de sa longueur.
Réponses
Je suppose que ce sel est essentiellement un numéro de version pour les futures extensions, chargé de garantir que la signature par une autre version utilisant un sel différent n'est pas une signature valide pour la version décrite.
Je peux imaginer deux autres rôles:
- Cela rend encore moins probable qu'une signature RSASSA-PSS vienne correspondre à une signature RSA-PSS de quelque chose de préexistant commençant par un hachage (mais il y a aussi le 0xBC pour le bon remplissage de EM jouant ce rôle). Rappelons que RSA-PSS a été introduit par Mihir Bellare et Phillip Rogaway La sécurité exacte des signatures numériques - Comment signer avec RSA et Rabin , dans les actes d'EuroCrypt 1996 ; et sa réduction à la pratique RSASSA-PSS est une légère variation, comme expliqué dans les notes de la section 9.1 de PKCS # 1v2.2 .
- Il est moins faux que la fonction de hachage / oracle aléatoire produise $M'$ est indépendant de celui qui produit $\text{mHash}$ et celui utilisé dans MFG1, qui est sans doute une hypothèse silencieuse dans l'argument de sécurité.