Pour calculer la balise dauthentification en mode Galois / Compteur (GCM), un MAC est dabord calculé en utilisant GHASH sur le chiffrement texte et les données supplémentaires. Après cela, ce MAC est crypté en utilisant GCTR (en utilisant le premier compteur).

Ma question est: Pourquoi cette dernière étape de cryptage est-elle nécessaire? Quel serait le problème de sécurité si je nutilisais que la sortie de GHASH directement comme balise dauthentification?

Réponse

Quel serait le problème de sécurité si je nutilisais que la sortie de GHASH directement comme balise dauthentification?

Ensuite, quelquun écoutant des messages chiffrés pourrait récupérer $ H $ , dont lun est correct.

La sortie de GHASH est un polynôme public (basé sur le texte chiffré et lAAD), évalué à une valeur secrète $ H $ . Il savère que, étant donné un tel polynôme, $ H $ peut être efficacement récupéré, soit en réécrivant le polynôme comme $ \ mathrm {GHASH} (H) + \ mathrm {Tag} = 0 $ , et récupérer les racines de cela (ce qui peut être fait dans un champ fini), ou encore plus facile, obtenir deux de ces textes chiffrés, réécrire les deux et utilisez une valeur euclidienne étendue pour récupérer leur racine commune.

Étant donné $ H $ , un attaquant peut apporter des modifications arbitraires aux messages chiffrés. ; oui, cest mauvais.

Commentaires

  • Une autre question: pourquoi est-il nécessaire dutiliser GCTR pour crypter le bloc GHASH au lieu de simplement utiliser $ Enc_H (GHASH) $ comme balise? De cette façon, GMAC pourrait être utilisé sans avoir besoin dun IV.
  • @mat: vous voulez dire envoyer $ GHASH $ via AES (en utilisant $ H $ comme clé )? Eh bien, en fait, ce genre de chose fonctionnerait (enfin, je ne ' pas utiliser $ H $ comme clé, mais à part ça …) et serait un conception plus conservatrice; cependant, GCM a été conçu à lorigine pour être un mode de tuyautage; cest-à-dire quil pourrait être implémenté étant donné une implémentation matérielle AES où chaque cycle dhorloge, nous donnons le bloc de texte en clair suivant au matériel, et à chaque cycle dhorloge, le Le texte chiffré dil y a 10 à 14 cycles apparaît. En chiffrant le GHASH, nous ' bloquons le pipeline …
  • Je veux simplement dire un simple Chiffrement ECB (en utilisant $ H $ ou $ K $ comme clé) du GHASH au lieu de le faire avec GCTR. Avoir l’avantage, que GMAC serait plus facile à utiliser, car il n’aurait plus besoin ' d’un nonce. Le pipelinig nest pas un problème ici, puisque le cryptage du tag est la toute dernière étape à faire dans GCM de toute façon, donc le pipeline est définitivement vide à ce stade.
  • @David 天宇 Wong: principalement des performances ( GHASH est parallélisable, les hachages sans clé ne sont généralement pas ' t)
  • @David 天宇 Wong: oh, cest vrai, ça aussi …

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *