Bases et applications de la cryptographie

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 ?

  1. ALe passage par une fonction de dérivation de clé rend le secret partagé sûr même face aux ordinateurs quantiques
  2. BLa valeur issue de l'échange de clés est trop courte, si bien que l'on ralentit délibérément le calcul pour freiner la force brute
  3. CLa valeur issue de l'échange de clés n'est pas forcément uniformément aléatoire : on la transforme en une clé sans biais et l'on dérive une clé distincte pour chaque usage
Afficher la réponse et l'explication

Réponse : C. La valeur issue de l'échange de clés n'est pas forcément uniformément aléatoire : on la transforme en une clé sans biais et l'on dérive une clé distincte pour chaque usage

Le secret partagé obtenu par un échange de clés est par exemple la coordonnée d'un point d'une courbe elliptique, et tous ses bits ne sont pas forcément uniformément aléatoires. HKDF utilise HMAC pour d'abord extraire du secret partagé une clé pseudo-aléatoire sans biais (Extract), puis l'étendre avec des étiquettes comme « chiffrement du client vers le serveur » (Expand) afin de produire autant de clés de la longueur voulue que nécessaire. Utiliser des clés indépendantes pour chaque usage évite qu'un problème touchant une clé ne s'étende aux autres usages. PBKDF2 et Argon2, qui dérivent des clés de mots de passe, sont volontairement lents, alors que HKDF est une opération légère qui suppose une entrée d'entropie suffisamment élevée.

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

Autres questions sur Bases et applications de la cryptographie

  1. 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)) ?
  2. 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 ?
  3. 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) ?
  4. Dans l'échange de clés Diffie-Hellman, un nombre premier p et un générateur g sont publics ; A et B choisissent des valeurs secrètes a et b et s'envoient g^a mod p et g^b mod p. Pourquoi estime-t-on qu'un attaquant qui écoute la communication ne peut pas trouver le secret partagé g^(ab) mod p, même après avoir vu toutes ces valeurs publiques ?
  5. On vérifie l'échange de clés Diffie-Hellman avec de petits nombres. Soit p = 23 et g = 5 ; A choisit la valeur secrète a = 6 et B la valeur secrète b = 15. A envoie A = g^a mod p et B envoie B = g^b mod p. Quel secret partagé les deux obtiennent-ils ?