Table des matières
5.1. Qu'est-ce qu'une fonction de hachage à sens unique?
Une fonction de hachage à sens unique typique prend un message de longueur variable en entrée et produit un "résumé" de longueur fixe. Il est impossible de trouver le message qui a généré un résumé donné; en fait on ne doit pas pouvoir obtenir la moindre information utile sur le message, même pas un simple bit. Pour certaines fonctions de hachage à sens unique il doit aussi être impossible de trouver deux messages qui ont le même résumé.
Une fonction de hachage à sens unique peut être publique ou privée, tout comme une fonction de chiffrement. Voici une application d'une fonction publique comme MD5 ou Snefru. La plupart des systèmes de signature à clé publique sont relativement lents. Signer un long message peut être trop long. La solution: calculer le résumé du message, puis signer le résumé, qui est court. Quelqu'un qui veut vérifier la signature peut faire la même chose.
[NdT: pas exactement, sinon n'importe qui pourrait falsifier la signature ! Soit H la fonction de hachage, M le texte à signer, supposons que l'on utilise le RSA, donc une fonction de chiffrement E (publique) et de déchiffrement D (privée) : d'un côté on calcule D(H(M)) = s et de l'autre on vérifie E(s) = H(M)
Je laisse ElGamal en exercice !]5.2. Quelle est la différence entre public, privé, secret, partagé, etc.?
Il y a dans la littérature un énorme mélange de terminologie à propos d'un très petit ensemble de concepts. Les voici: (1) Quand un algorithme dépend d'une clé qui n'est pas publiée, on l'appelle algorithme privé; sinon on l'appelle algorithme public. (2) Nous avons des fonctions de chiffrement E et de déchiffrement D, telles que D(E(M))=M pour tout message M. (3) Nous avons aussi des fonctions de hachage H et des fonctions de vérification V, telles que V(M,X) = 1 si et seulement si X = H(M).
Un cryptosystème à clé publique a une fonction de chiffrement publique et une fonction de déchiffrement privée. Les sommes de contrôles, comme celle mentionnée dans la question précédente, ont un hachage et une vérification publique.
La signature numérique a un hachage privé et une vérification publique: une seule personne peut produire la signature d'un message, mais toutes peuvent vérifier qu'elle est correcte.
Manifestement, quand un algorithme dépend d'une clé privée, il est inutilisable par quiconque n'a pas la clé. Il n'y a pas vraiment de différence entre une clé "partagée" et une clé privée: une clé partagée n'est pas publiée, donc elle est privée. Si vous chiffrez des données pour un ami, allez-vous subitement faire du "chiffrement à clé partagée" plutôt que du chiffrement à clé privée? Non.
[NdT: je vous jure que l'original ne vaut pas mieux que mon charabia. Kerberos et d'autres systèmes classent les clés en trois catégories :
]
5.3. Qu'est-ce que MD4 et MD5?
MD4 et MD5 sont des fonctions de hachage développées par Ron Rivest. (voir le chapitre sur MD5)
NB: on a trouvé une erreur de transcription dans le premier brouillon MD5. On devrait appeler l'algorithme corrigé MD5a, mais beaucoup l'appellent MD5.5.4. Qu'est-ce que Snefru?
Snefru est une famille de fonctions de hachage développée par Ralph Merkle. Snefru-8 est une fonction à 8 rondes, la plus récente de la famille. Elles sont définies dans le papier de Merkle.