Question

J'aimerais ajouter le cryptage AES à un logiciel, mais je suis préoccupé par l'augmentation de la taille des données. Je suppose que la taille des données augmente, puis je devrai ajouter un algorithme de compression pour compenser.

Était-ce utile?

La solution

AES ne développe pas les données. De plus, la sortie ne sera généralement pas compressible; si vous avez l'intention de compresser vos données, faites-le avant de les chiffrer.

Toutefois, notez que le cryptage AES est généralement associé au padding , qui < em> augmentera la taille des données (bien que de quelques octets).

Autres conseils

AES ne développe pas les données, à l'exception de quelques octets de remplissage à la fin du dernier bloc.

Les données résultantes ne sont en aucun cas compressibles, car elles sont fondamentalement aléatoires - aucun algorithme basé sur un dictionnaire n'est capable de les compresser efficacement. Une bonne pratique consiste à compresser d’abord les données, puis à les chiffrer.

Il est courant de compresser des données avant de les chiffrer. La compression ultérieure ne fonctionne pas, car les données cryptées AES semblent aléatoires (comme pour tout bon chiffrement, mis à part les en-têtes et les autres).

Cependant, la compression peut introduire des attaques par canaux secondaires dans certains contextes. Vous devez donc analyser votre propre utilisation. La VOIP chiffrée a récemment fait l’objet de telles attaques. En résumé, différentes syllabes créent des variations caractéristiques du débit lorsqu’elles sont compressées avec VBR, car certains sons se compressent mieux que d’autres. Certaines syllabes (ou toutes) peuvent donc être récupérées avec une analyse suffisante, car les données sont transmises à la vitesse à laquelle elles sont générées. Le correctif consiste soit à utiliser une compression CBR (moins efficace), soit à utiliser un tampon pour transmettre à débit constant quel que soit le débit de données sortant du codeur (latence croissante).

AES convertit des blocs d’entrée de 16 octets en blocs de sortie de 16 octets. La seule extension consiste à arrondir les données à un nombre entier de blocs.

Je suis à peu près sûr que le cryptage AES n’ajoute rien aux données en cours de cryptage, car cela donnerait des informations sur les variables d’état, ce qui est une mauvaise chose en matière de cryptographie.

Si vous souhaitez combiner compression et chiffrement, procédez comme suit. La raison en est que les données chiffrées (idéalement) ressemblent à des données totalement aléatoires et que les algorithmes de compression finiront par les agrandir, en raison de leur incapacité à les compresser et de la surcharge de la comptabilité inhérente à tout format de fichier compressé.

Si une compression est nécessaire, faites-le avant de chiffrer.

Non. Le seul changement sera une petite quantité de remplissage pour aligner les données à la taille d'un bloc

Cependant, si vous compressez le contenu, notez que vous devriez le faire avant le cryptage . Les données cryptées ne doivent généralement pas être distinguées des données aléatoires, ce qui signifie qu'elles ne seront pas compressées.

@freespace et d’autres: L’une des choses que je me souviens de mes cours de cryptographie est que vous ne devriez pas compresser vos données avant le cryptage, car certains fragments répétables de flux compressé (comme les en-têtes de section, par exemple) peuvent faciliter la résolution de vos problèmes. cryptage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top