web-dev-qa-db-fra.com

Une partie d'un fichier chiffré est-elle plus facile à déchiffrer?

Après avoir chiffré un fichier (GPG avec AES) et l'avoir divisé en morceaux (split), est-il plus facile de casser l'une des parties par rapport au fichier complet? (Peut-être parce qu'il peut perdre des bits importants.)

11
rugowimola

Non. Vous devez toujours trouver la même clé de chiffrement de longueur pour déchiffrer les données en texte brut. Trouver la clé est la partie difficile, décrypter une image entière ou partielle est trivial une fois que vous avez la clé.

Si vous utilisez un schéma de cryptage dans lequel le fichier est crypté et décrypté de manière déterministe en fonction de la dernière section (de/en) cryptée, il peut être plus difficile de se retrouver de manière fiable dans le même texte en clair que vous auriez obtenu si vous aviez effectué le même déchiffrement sur tout le fichier, si le fichier est divisé après chiffrement. Ceci est semi-pertinent pour les schémas de cryptage CBC. Vous pouvez récupérer des blocs de texte brut si votre archive sépare les fichiers en segments de deux ou plusieurs blocs de texte chiffré ou plus. Si vous deviez séparer l'intégralité du texte chiffré en segments d'un bloc de chiffrement chacun, vous rendriez indéchiffrable tout bloc manquant à la fois ses blocs adjacents.

Si vous utilisez un schéma qui applique une clé de chiffrement différente à chaque segment plus petit, vous augmentez le nombre de clés nécessaires pour déchiffrer l'intégralité du message, mais cela devient très spécifique à l'implémentation.

ÉDITER:

En ce qui concerne la "perte de bits importants" - je suppose que vous voulez dire que si vous fractionnez le fichier crypté et supprimez certains segments (ou les stockez ailleurs), vous supprimez peut-être des parties du fichier qui garantissent la sécurité du fichier. contenu, comme une somme de contrôle ou quelque chose.

La façon dont la cryptographie moderne fonctionne, votre résultat final est deux éléments de données - votre clé de cryptage et le texte chiffré. Un bon algorithme de cryptographie n'aura pas de "parties" distinctes dans le texte chiffré. Idéalement, il devrait être impossible de le distinguer du bruit blanc. Sinon, vous ouvrez votre texte chiffré à la fois à la détection et à la rétro-ingénierie. Donc, à partir d'un texte chiffré, il n'y a pas de bits spécifiquement importants à perdre.

Une excellente façon de penser à un "Est-ce que cela facilite l'attaque?" - la question est de vous demander "L'attaquant peut-il le faire trivialement?".

Si le fractionnement d'un fichier en morceaux étaient facilitant réellement l'attaque, alors ce serait la procédure par défaut pour chaque attaquant. Cela nous amène à une observation importante: les schémas de chiffrement n'ont pas de "force" fixe. Ils ne sont aussi forts que la meilleure attaque actuellement connue.

Prenons l'exemple de RSA: RSA repose sur le fait que la factorisation en nombres premiers est difficile. Si quelqu'un devait développer un alogrithme qui rendait deux fois plus facile de factoriser de grands nombres premiers, alors RSA deviendrait plus faible.

4
MechMK1

Non. Le fractionnement de votre fichier après le cryptage ne facilite pas l'attaque. En effet, lorsque vous utilisez un algorithme tel que AES, la sortie (votre fichier chiffré) est presque équivalente à un ensemble de bits aléatoires pour quelqu'un qui ne connaît pas la clé utilisée. Donc, retirer une partie de cet ensemble ne les aidera en aucun cas.

3
Whysmerhill

Par souci d'exhaustivité, je soulignerai qu'il est possible de diviser un fichier de manière dangereuse.

Comment? Eh bien, si l'emplacement du fractionnement dépend de la clé elle-même (par exemple, vous pouvez diviser la clé en morceaux de 4 octets, puis diviser le fichier aux décalages donnés par chaque valeur de 4 octets), cela peut évidemment fuir la clé.

Comment cela pourrait-il arriver par accident?

  1. Vous dites à votre enfant de 12 ans de diviser le fichier de manière "amusante", et il décide de le faire en fonction des décalages donnés par la clé.

  2. Vous êtes incroyablement ennuyé et inconscient des problèmes de sécurité possibles, et essayez donc d'être "créatif" avec le fractionnement, faisant donc quelque chose de similaire.

En réalité, cela ne se produirait pas si vous portiez attention à ce que vous faites.

2
user541686

Remarquez tout d'abord que lorsque vous chiffrez un fichier à l'aide de GPG avec AES, ce que vous chiffrez réellement est déjà divisé en deux parties, car vous vous reposez sur un soi-disant " schéma de chiffrement hybride ":

  1. Vous allez générer une clé AES aléatoire que vous pouvez utiliser pour crypter vos données, cette clé est la "clé de chiffrement des données" (DEK), car les chiffrements symétriques tels que AES sont bien plus rapides que la cryptographie à clé publique telle que RSA.
  2. L'étape suivante utilisera l'algorithme asymétrique GPG (généralement RSA) pour crypter ce DEK avec la clé publique du destinataire, qui peut ensuite être appelée une "clé de cryptage de clé" (KEK)
  3. Le texte chiffré réel se compose en fin de compte de deux parties: le DEK chiffré et les données chiffrées.

Maintenant, vous pouvez évidemment diviser votre texte chiffré en une partie "RSA" et une partie "AES" sans que cela ne complique la tâche de l'attaquant: elle aurait encore besoin de casser la partie RSA ou la partie AES, mais cela pourrait rendre plus difficile pour l'attaquant d'obtenir réellement la partie qu'elle est prête à casser (au niveau opérationnel).

En ce qui concerne les données elles-mêmes, le cryptage avec AES signifie que vous utilisez un mode de fonctionnement avec votre chiffrement symétrique car le simple AES ne peut crypter qu'un bloc de 128 bits. Mais le standard OpenPGP définit son très propre variante du mode CFB, ce qui signifie que vous vous en remettez à vous lorsque vous utilisez GPG avec AES.

Étant donné que la variante CFB utilisée par OpenPGP comporte en fait une "vérification de clé correcte" dans ses deux premiers blocs de données chiffrées, il suffit d'avoir les deux premiers blocs de texte chiffré pour savoir si l'on a trouvé la bonne clé ou non, cependant le déchiffrement processus de tout bloc repose uniquement sur l'AES DEK et le bloc précédent de texte chiffré.

Donc, d'un point de vue opérationnel , le fractionnement des données de telle sorte qu'aucun deux blocs simultanés ne soient transmis ensemble augmenterait probablement la complexité de l'attaque , puisque l'attaquant n'aurait pas le IV même si elle avait la clé, et donc elle aurait besoin de forcer à la fois le IV des blocs et la clé ... Cependant, à partir d'une sécurité théorique du point de vue, il n'y a pas d'augmentation ou de diminution significative de la sécurité fournie par AES et le mode de fonctionnement CFB en divisant les données en plusieurs morceaux.

Notez que le cryptage AES n'est considéré comme sûr que tant que la clé est secrète. (Et l'IV n'est pas censé être un secret.) Cela ne change pas lorsque vous effectuez une opération (non liée à la clé) sur le texte chiffré uniquement, sinon un attaquant pourrait simplement le faire lui-même.

0
Lery