Comme vous pouvez le voir des autres réponses, avoir un IV unique par fichier chiffré est crucial, mais pourquoi?
Tout d'abord - revoyons pourquoi un IV unique par fichier chiffré est important. (Wikipédia sur l'IV). L'IV ajoute de l'aléatoire au début de votre processus de chiffrement. Lorsque vous utilisez un mode de chiffrement de bloc enchaîné (où un bloc de données chiffrées intègre le bloc précédent de données chiffrées), nous sommes confrontés à un problème concernant le premier bloc, c'est là que l'IV entre en jeu.
Si vous n'aviez pas d'IV, et utilisiez un chiffrement de bloc enchaîné avec simplement votre clé, deux fichiers qui commencent par un texte identique produiraient des premiers blocs identiques. Si les fichiers d'entrée changeaient en cours de route, alors les deux fichiers chiffrés commenceraient à diverger à partir de ce point et jusqu'à la fin du fichier chiffré. Si quelqu'un remarquait la similitude au début, et savait par quoi commençait l'un des fichiers, il pourrait déduire par quoi commençait l'autre fichier. Savoir par quoi le fichier en clair commençait et quel est son chiffrement correspondant pourrait permettre à cette personne de déterminer la clé et puis de déchiffrer l'intégralité du fichier.
Ajoutez maintenant l'IV - si chaque fichier utilisait un IV aléatoire, leur premier bloc serait différent. Le scénario ci-dessus a été contrecarré.
Maintenant, qu'en est-il si l'IV était le même pour chaque fichier? Eh bien, nous aurions à nouveau le scénario problématique. Le premier bloc de chaque fichier chiffrera au même résultat. Pratiquement, cela ne diffère pas de ne pas utiliser l'IV du tout.
Alors maintenant parlons de vos options proposées:
Option 1. Incorporer un IV codé en dur à l'intérieur de l'application et enregistrer la clé dans le fichier de clé.
Option 2. Incorporer une clé codée en dur à l'intérieur de l'application et enregistrer l'IV dans le fichier de clé.
Ces options sont pratiquement identiques. Si deux fichiers qui commencent par le même texte produisent des fichiers chiffrés qui commencent par un texte chiffré identique, vous êtes piégé. Cela se produirait dans ces deux options. (En supposant qu'il y ait une clé maîtresse utilisée pour chiffrer tous les fichiers).
Option 3. Enregistrer à la fois la clé et l'IV dans le fichier de clé.
Si vous utilisez un IV aléatoire pour chaque fichier de clé, vous êtes bon. Aucun deux fichiers de clé ne seront identiques, et chaque fichier chiffré doit avoir son fichier de clé. Un fichier de clé différent ne fonctionnera pas.
PS: une fois que vous optez pour l'option 3 et des IV aléatoires - commencez à réfléchir à la manière dont vous déterminerez si le déchiffrement a été réussi. Prenez un fichier de clé d'un fichier, et essayez de l'utiliser pour déchiffrer un autre fichier de chiffrement. Vous pourriez découvrir que le déchiffrement se poursuit et produit des résultats incorrects. Si cela se produit, commencez à vous renseigner sur le chiffrement authentifié.