Bases et applications de la cryptographie

Utiliser comme étiquette de détection des falsifications la valeur de hachage SHA-256(K ‖ m) d'une clé secrète K suivie d'un message m est considéré comme dangereux. Quelle en est la raison ?

  1. ASi l'étiquette et la longueur de l'entrée sont connues, on peut calculer sans connaître K l'étiquette d'un message obtenu en ajoutant des données après m
  2. BOn connaît une méthode efficace pour retrouver, à partir de la sortie de SHA-256, la seule partie K placée au début de l'entrée
  3. CPlacer la clé K devant le message allonge l'entrée, et avec SHA-256 cela rend les collisions plus faciles à trouver
Afficher la réponse et l'explication

Réponse : A. Si l'étiquette et la longueur de l'entrée sont connues, on peut calculer sans connaître K l'étiquette d'un message obtenu en ajoutant des données après m

Dans une fonction de hachage à construction de Merkle–Damgård comme SHA-256, la valeur de hachage produite est exactement l'état interne après le traitement du dernier bloc. Un attaquant peut donc prendre l'étiquette comme état interne et poursuivre le calcul, obtenant sans connaître K la valeur de hachage d'un message formé de K ‖ m suivi d'un remplissage de forme fixe et de données arbitraires (attaque par extension de longueur). HMAC, qui utilise deux valeurs dérivées de la clé et hache une nouvelle fois la valeur de hachage interne avec la clé, empêche cette attaque. SHA-3 n'est pas vulnérable à cette attaque par construction ; c'est pourquoi KMAC, qui se contente de placer la clé en tête, a aussi été normalisé.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases et applications de la cryptographie

  1. On pose 1 GiB = 2³⁰ octets et 1 EiB = 2⁶⁰ octets. Un chiffrement par blocs à blocs de 64 bits (comme 3DES) est utilisé en mode CBC pour chiffrer une grande quantité de données sous une seule clé. En considérant les blocs de texte chiffré comme des valeurs aléatoires de 64 bits, quelle est la quantité de données à partir de laquelle, d'après le paradoxe des anniversaires, la probabilité qu'apparaisse une paire de blocs de texte chiffré identiques ne peut plus être négligée ?
  2. Dans des protocoles comme TLS 1.3, le secret partagé obtenu par un échange de clés ECDHE n'est pas utilisé directement comme clé de chiffrement : les clés sont produites en le faisant passer par une fonction de dérivation de clé (KDF) comme HKDF. Quelle en est une raison appropriée ?
  3. On vérifie le mécanisme de RSA avec de petits nombres. À partir des nombres premiers p = 5 et q = 11, on forme n = pq, et l'exposant public est e = 3. Avec φ(n) = (p − 1)(q − 1), quel est l'exposant privé d (0 < d < φ(n)) qui vérifie e × d ≡ 1 (mod φ(n)) ?
  4. En RSA, la clé publique est n = 55 et e = 3. Quel est le texte chiffré c lorsque le texte clair m = 7 est chiffré par c = m^e mod n ?
  5. Quelle affirmation décrit correctement un problème posé par l'utilisation, dans de vraies communications et sans remplissage, du RSA « de manuel » (qui calcule directement c = m^e mod n à partir du texte clair m) ?