• Aucun résultat trouvé

Crypto-compression hybride

7.3 Crypto-compression d’images JPEG

7.3.3 Crypto-compression hybride

Dans le but d’introduire les propriétés de confusion et de diffusion conjointement, certains auteurs se sont tournés vers des approches hybrides. De plus, les méthodes précédemment présentées ne permettent de chiffrer qu’une faible quantité d’information si le facteur de qualité est faible puisque peu de coefficients sont non-nuls. L’avantage des approches hybrides est qu’en superposant des étapes n’augmentant que peu la taille du ficher, l’augmentation globale est faible alors que la confidentialité visuelle est maîtrisée et la sécurité augmentée. Dans ce but, Minemura et al. [84] ont permuté les blocs JPEG. A l’intérieur de chaque bloc, les coefficients AC ayant une plage de zéros de taille nulle sont alors permutés. Ensuite, les bits de signe sont chiffrés avec une séquence pseudo-aléatoire par l’opération XOR pour augmenter les perturbations. Ces trois étapes n’augmentent pas la taille. Ensuite, les coefficients DC sont groupés par valeurs proches à l’aide d’une détection de contours dans le domaine fréquentiel pour être traités, ce qui peut augmenter le nombre de bits mais de manière assez limitée. Concrètement, si seulement les coefficients AC sont mélangés, alors les contours de l’image sont toujours perceptibles. Dans une approche similaire, Unterweger et Uhl décrivent une méthode de crypto-compression basée sur trois étapes [151]. La première étape consiste à permuter

l’ordre des codes des coefficients (de la forme (HF0(u,v), AF0(u,v))) dans un MCU en

utilisant l’algorithme AES [25] en mode OFB, comme illustré en fig. 7.8. Les coefficients non-nuls et les coefficients nuls codés ensemble sont mélangés, le mélange n’augmente pas la taille du code mais change la position des coefficients des fréquences. Les bits

des valeurs des coefficients (AF0(u,v)) sont ensuite inversés en fonction du retour (0 ou 1

binaire) du GNPA basé AES utilisé à l’étape précédente. Finalement, l’ordre des MCU partageant les mêmes tables de Huffman est modifié de façon pseudo-aléatoire, ce qui ajoute un niveau de sécurité en fonction du nombre de tables de Huffman. Cette méthode est sécurisée dans le sens où une attaque en force brute sur la clé AES est plus efficace que d’essayer toutes les combinaisons possibles.

HF (0,0)= 4 HF (0,1)= (0, 6) HF (0,2)= (3, 1) HF (1,2)= (1, 2) . . . EOB AF (0,0) AF (0,1) AF (0,2) AF (1,2) MCU F (0, 0) F (0, 1) F (3, 3) F (0, 6) HF (0,0)= 4 HF (0,2)= (3, 1) HF (1,2)= (1, 2) HF (0,1)= (0, 6) . . . EOB AF (0,0) AF (0,2) AF (1,2) AF (0,1) MCU chiffr´e Fc(0, 0) Fc(1, 1) Fc(0, 3) Fc(1, 2) Fc(0, 0) taille= 4 0 0 Fc(0, 3) 0 0 0 Fc(1, 1) 0 Fc(1, 2)

Coefficients DCT quantifi´es m´elang´es

F (0, 0) F (0, 1) F (0, 2) 0 0 0 0 0 0 F (1, 2) Coefficients DCT quantifi´es Chiffrement

FIGURE7.8 – Illustration de la méthode de mélange intra-bloc des codes des coefficients

Les méthodes présentées dans cette section permettent de chiffrer des images JPEG de façon efficace en terme de confidentialité visuelle et de limitation de la taille du fichier. L’analyse de la sécurité des méthodes de crypto-compression comme effectuée dans l’approche de Unterweger et Uhl [151] n’était que peu faite auparavant, mais la tendance actuelle va dans le sens d’une étude systématique. Bien que la plupart des mé- thodes soient basées sur le format JPEG, et par conséquent sur la DCT, d’autres schémas existent et ont été popularisés au cours des dernières années. Effectivement, beaucoup de méthodes de crypto-compression d’images compatibles au format JPEG2000 sont présentées dans l’étude d’Engel et al. [34]. D’autres méthodes sont basées sur le chif- frement du signe des coefficients des ondelettes [31], sur les permutations [88, 77] ou sur le codage arithmétique rendu aléatoire [46]. Pour adapter ces méthodes à de la vidéo, Shahid et al. ont conçu une technique de chiffrement sélectif pour le codec vidéo H.264/AVC pour les normes CAVLC et CABAC [131]. Le chiffrement est effectué lors de la phase du codage entropique en utilisant l’algorithme AES en mode CFB. Dans le but de conserver la taille du fichier et de préserver le format H.264/AVC, le chiffrement est réalisé seulement sur les mots-clés CAVLC et les flux binaires CABAC. De plus, Dufaux et Ebrahimi ont proposé une méthode pour la protection de la vie privée dans les systèmes de vidéo-surveillance basée sur des permutations binaires [30]. Par ailleurs, une étude appronfondie des méthodes de crypto-compression HEVC a été réalisée récemment [48].

L’avantage des méthodes de crypto-compression est de pouvoir manipuler les images crypto-compressées comme des images JPEG classiques pour le partage, le sto- ckage ou la visualisation. Cependant, certaines tâches ne sont plus possibles. En effet, les algorithmes de vision par ordinateur, d’amélioration de la qualité ou l’application d’une seconde compression nécessitent un déchiffrement. Dans ce contexte, des méthodes de chiffrement homomorphe sont apparues [37] et permettent d’effectuer des opérations directement dans le domaine chiffré, comme décrit dans le chapitre 3.

7.4

Méthode proposée

Dans cette partie, nous présentons notre méthode de recompression d’images JPEG crypto-compressées, sans utilisation de la clé secrète utilisée lors du chiffrement. Nous commençons par développer les différentes étapes de notre nouvelle méthode de crypto-compression, où la compression JPEG et le chiffrement sont réalisés de manière conjointe pendant le codage de Huffman, comme dans les travaux de Puech et al. [99]. Nous décrivons alors une méthode efficace pour recompresser les images JPEG crypto- compressées directement dans le domaine chiffré, sans avoir accès au contenu en clair de l’image originale. Notons que cette approche préserve le niveau de sécurité de la méthode de crypto-compression. Dans la section 7.4.1, nous donnons un aperçu général de la méthode proposée. La méthode de crypto-compression est détaillée en section 7.4.2 et notre approche proposée pour recompression les images crypto-compressées est décrite en section 7.4.3. Nous expliquons alors comment décoder l’image JPEG crypto- compressée après l’étape de recompression en section 7.4.4.

7.4.1

Description générale de la méthode

Dans l’approche proposée, nous commençons par appliquer les étapes d’une com- pression classique au format JPEG. Nous pouvons alors choisir de chiffrer seulement la composante de luminance Y. En effet, c’est elle qui porte l’information la plus signifi- cative quant au contenu de l’image. Pour un niveau de sécurité optimal, nous devons cependant considérer les trois composantes (Y, Cr et Cb) lors de l’étape de chiffrement. Par souci de conservation du taux de compression, nous chiffrons seulement les coeffi- cients non-nuls après quantification [99]. Une image JPEG crypto-compressée est ainsi obtenue et nous nous intéressons à la recompression de cette image directement dans le domaine chiffré, sans connaître la clé secrète utilisée lors du chiffrement, ni le contenu original de l’image. Le schéma général de cette méthode est illustré en fig. 7.9.

FIGURE7.9 – Schéma général de la méthode de recompression d’images JPEG crypto-

compressées.

Supposons qu’Alice ait recours à un système de crypto-compression JPEG dans le but de se prémunir contre une utilisation malicieuse de ses images et par souci d’utiliser le moins d’espace possible. Alice souhaite stocker ses images sur sa plateforme de cloud dans le but de pérenniser ses données et pouvoir y accéder depuis n’importe où. La crypto-compression JPEG est adaptée puisqu’elle permet une certaine confidentialité par rapport aux attaques de la plateforme ou à l’analyse des données que l’hébergeur, lui-même, pourrait en faire. La plupart des services dans les nuages ont des contraintes sur le dépôt d’images (que ce soit sur la taille ou le format) dans le but d’optimiser le stockage et l’utilisation de la bande passante. Si Alice crypto-compresse ses images

avec un facteur de qualité QF, l’administrateur du réseau peut vouloir les recompresser.

Cette recompression, se fait, usuellement, en appliquant une nouvelle compression JPEG avec une table de quantification spécifique. Néanmoins, la recompression simple d’une image crypto-compressée, bien que techniquement possible, ne permettra pas à Alice de déchiffrer ses images en utilisant sa clé secrète : le contenu de l’image originale serait alors perdu. Les méthodes de crypto-compression ne sont pas robustes à une recompression simple. Alice pourrait donc transmettre sa clé secrète en toute confiance à l’hébergeur pour lui permettre une crypto-compression avec un facteur de qualité plus faible, mais cette solution n’est pas sécurisée. Le but est alors de permettre une recompression des images JPEG crypto-compressées sans avoir accès à la clé secrète. Les images transférées par Alice peuvent donc être recompressées directement sur le

7.4.2

Une approche de crypto-compression robuste à la recompres-

sion

La méthode de crypto-compression utilisée s’inspire des travaux réalisés par Puech et al. [99]. Nous proposons d’adapter cette approche de manière à la rendre robuste à l’application d’une ou plusieurs recompressions après une crypto-compression initiale. En effet, si une image crypto-compressée à l’aide de l’approche décrite dans [99] est re- compressée sans adaptation, alors il se produit une désynchronisation avec la séquence binaire pseudo-aléatoire utilisée pour le déchiffrement lors de la phase de décodage. Par conséquent, le contenu de l’image en clair ne peut pas être reconstruit sans erreur. Pour résoudre ce problème, dans la méthode de crypto-compression proposée, nous réordonnons les coefficients JPEG pendant la phase de chiffrement. En figure 7.10, une description générale de la méthode de crypto-compression est présentée.

FIGURE7.10 – Crypto-compression robuste à la recompression.

Les étapes d’une compression JPEG classique sont appliquées à l’image originale I jusqu’à la quantification des coefficients fréquentiels. Après cette dernière, le chiffrement est réalisé lors du codage de Huffman. Dans le but de préserver la confidentialité du contenu original de l’image, le chiffrement doit être appliqué au minimum sur la composante de luminance Y. Rappelons que les deux composantes de chrominances Cr et Cb peuvent être également chiffrées, mais comme illustré en figure 7.10, nous pouvons choisir de les laisser en clair car le SVH y est peu sensible. Dans chaque

MCU, tous les coefficients F0(u, v) non-nuls après quantification sont chiffrés. Les

coefficients AC F0(u, v)non-nuls sont alors réordonnés suivant leur taille, dans l’ordre

décroissant. L’étape de recompression décrite en section 7.4.3 correspond à une division

par deux de tous les coefficients AC F0(u, v)non-nuls. Notons que le réordonnancement

des coefficients rend possible la resynchronisation du GNPA, même dans le cas d’un

coefficient F0(u, v)avec une amplitude codée sur un bit – et donc ramené à zéro après

recompression. Ainsi, sans l’étape de réordonnancement, il serait impossible de dissocier ces coefficients de ceux qui étaient déjà nuls avant la recompression : cela entraînerait une désynchronisation avec la séquence binaire pseudo-aléatoire.

Après sélection et réordonnancement des coefficients AC F0(u, v)non-nuls, une clé

secrète est utilisée pour générer une graine (seed) différente pour chaque MCU. Cette graine sert à initialiser un GNPA afin d’obtenir une séquence binaire pseudo-aléatoire. La taille de cette séquence est calculée en additionnant les tailles de chaque coefficient

toutes leurs amplitudes. Ainsi, la valeur d’un coefficient chiffré Fc0(u, v)est : Fc0(u, v) = E (F0(u, v), taille(F0(u, v))) ,

= E HF0(u,v), AF0(u,v) , taille(F0(u, v)) ,

= HFc0(u,v), AFc0(u,v) ,

(7.6)

où HFc0(u,v) = HF0(u,v).

Comme illustré en fig. 7.10, la fonction de chiffrement E(·) consiste à effectuer

un ou-exclusif entre la valeur de l’amplitude d’un coefficient en clair F0(u, v) et la

partie correspondante dans la séquence binaire pseudo-aléatoire, suivant sa taille et

sa position dans le MCU. Les valeurs des amplitudes AF0(u,v)du flux binaire original

sont alors substituées par leurs valeurs chiffrées AFc0(u,v) pour obtenir le MCU chiffré.

Dans cette séquence, l’équivalent chiffré du coefficient F0(u, v), codé par une paire

(HF0(u,v), AF0(u,v)), est Fc0(u, v), codé par une paire (HFc0(u,v), AFc0(u,v)), dont l’entête est inchangé. Notons que le coefficient chiffré est codé sur le même nombre de bits que sa version en clair, puisque seul un ou-exclusif est appliqué. Finalement, l’image JPEG

crypto-compressée I0

cest obtenue.