Confus comment utiliser AES et HMAC

Je suis un peu confus comment utiliser AES et HMAC (basé sur l'algorithme SHA-256) d'une manière appropriée en cas de transmission du message chiffré à partir du serveur vers le client ou vice versa

Corrigez-moi s'il vous plaît si la méthode suivante est fausse:

  1. Prendre la clé de cryptage du fichier de clés (par exemple, nous proposons d'utiliser l'algorithme AES-256 et nous avons déjà un valide 256 bits, la longueur de la clé)
  2. Générer de l'aléatoire IV pour AES-256 pour être sûr que le même texte brut sera de chiffrement différente de sortie.
  3. Calculer HMAC-SHA-256 avec le texte en clair et sécurisé. (La première question: dois-je utiliser IV pour HMAC calcul? Par exemple ajouter à la clé?)
  4. Chiffrer le texte en clair à l'aide de l'algorithme AES-256.
  5. De composer un message pour le client comme suit: HMAC + IV+ ENCRYPTED_MESSAGE

La grande question est: est ce que c'est possible de ne pas envoyer IV du client, mais au lieu de générer de la même manière et toujours être crypto-fort? Ou est-ce ok pour envoyer le IV trop?

J'ai à la fin avec l'aléatoire de la génération IV, car il est nécessaire que le même texte brut sera à la fin de cryptage différents résultats.

source d'informationauteur Valentin