Pour la partie d’expérimentation et sous la demande de mon responsable de stage et le projet TSAR, j’implémente des applications : une application de chiffrage sélectif appliquée aux ima
Trang 1PROTECTION DE SEQUENCE D’IMAGES
COMPRIMEES ET PORTABLES : APPLICATION A LA VIDEO SURVEILLANCE
Réalisé par VU Duc Minh Encadré par William PUECH & Marc CHAUMONT
LIRMM, Montpellier , France
Trang 2Table des matières
Termes 3
Table des figures 4
Résumé 5
Abstract 6
Remerciements 7
Introduction 8
1 Compression JPEG 10
1.1 Compression sans perte 10
1.2 Compression avec perte 11
1.2.1 Mode séquentiel 11
2 Cryptage sélectif 18
2.1 Approche de chiffrage sélectif de l’image 20
2.1.1 Chiffrage sélectif par plan de bits 20
2.1.2 Chiffrage sélectif avec compression JPEG 21
2.1.3 Chiffrage sélectif avec compression JPEG2000 28
3 Estimation de la distribution de coefficient 30
3.1 Quelques distributions fondamentales 30
3.2 Distribution de chaque coefficient AC 31
3.2.1 Preuves mathématiques de la distribution de coefficients AC 32
3.2.2 Algorithme pour trouver la paramètre de forme de la loi gaussienne généralisée34 4 Expériences 37
4.1 Chiffrage sélectif de l’image avec compression JPEG 38
4.2 Analyse des coefficients 44
4.2.1 Tester la distribution selon la loi normale 46
4.2.2 Tester la distribution selon la loi laplacienne 47
5 Conclusion 49
Références 50
Annexe 53
Trang 3Termes
VLC : codage avec longueur variable
TCD : transformation cosinus discrète
EOB : fin du bloc
DPCM : modulation de code d'impulsion différentielle
pdf : fonction de densité de probabilité
Trang 4Table des figures
Figure 1.1 : Le schéma de compression sans perte JPEG 10
Figure 1.2 : Le schéma de prédiction fondée sur les 3 voisinages 10
Figure 1.3 : Schéma de JPEG en mode séquentiel 12
Figure 1.4 : Tableau de quantification défaut 13
Figure 1.5 : Préparation des coefficients TCD pour le codage par entropie 14
Figure 1.6 : Catégories (CAT) de codage séquentiel 15
Figure 1.7 : Coefficients TCD quantifiés d'un bloc 16
Figure 2.1 : Schéma de cryptage sélectif dans la compression 19
Figure 2.2 : Image obtenue sans déchiffrage 19
Figure 2.3 : 12.5% et 25% données cryptés 21
Figure 2.4 : Chiffrage de 5 plan de bits et 7 plan de bits 21
Figure 2.5 : Zigzag séquence de JPEG 22
Figure 2.6 : Image encryptée avec algorithme de Tang 22
Figure 2.7 : Image décryptée avec la taux de compression de 60% et 20% 23
Figure 2.8 : Chiffrage sélectif des coefficients AC 24
Figure 2.9 : Cryptage sélectif en utilisant des coefficients AC 25
Figure 2.10 : Cryptage des régions locales 25
Figure 2.11 : Chiffrage sélectif de JBIG en mode progressif 26
Figure 2.12 : Chiffrage sélectif les coefficients après la quantification d’un bloc TCD 26
Figure 2.13 : Créer le vecteur binaire claire depuis des coeffients TCD 27
Figure 2.14 : Chiffrage le vecteur Huffman avec AES en mode CFB 27
Figure 2.15 : Chiffrage sélectif de JPEG2000 avec l'algorithme de Norcen 28
Figure 2.16 : Image reçue par chiffrage sélectif 10% des données 29
Figure 3.1 : Règle empiriale 30
Figure 3.2 : Une distribution de coefficients AC 32
Figure 3.3 : Distribution gaussienne généralisée 34
Figure 4.1 : Etapes de compression JPEG 37
Figure 4.2 : Chiffrage coefficients AC avec AES en mode CFB 37
Figure 4.3 : Lena avec chiffrage sélectif 39
Figure 4.4 : Bamboo avec chiffrage sélectif 40
Figure 4.5 : Autres résultats – 128 bits 41
Figure 4.6 : Chiffrage sélectif des visages 42
Figure 4.7 : Chiffrage sélectif des visages à partit d’une webcam 43
Figure 4.8 : Distribution de tous les coefficients avant le chiffrage 45
Figure 4.9 : Distribution de tous les coefficients après le chiffrage……… ……… 45
Trang 5Résumé
Le chiffrage joue un rôle important dans la sécurité pour protéger l'information Mais il exige beaucoup de temps, des ressources de calcul donc il n'est pas approprié, par exemple, à l'application temps réel, aux dispositifs portables Et pour un certain type d'information numérique, par exemple image, vidéo , nous ne pouvons pas comprendre le contenu qui est complètement chiffrée sans le déchiffrer et nous ne pouvons pas faire une présélection d'information que nous voulons
Une solution à ce problème est le chiffrage sélectif Au lieu de chiffrer toutes les données, nous chiffrons seulement une partie des données En exploitant des structures de fichiers que nous voulons chiffrer, nous pouvons trouver sur quelles parties de données on peut faire
le chiffrage sélectif Dans mon stage, j’étudie les algorithmes de chiffrage sélectif appliquées
à l'image et mets en application un algorithme proposé par mon superviseur de stage et cette implémentation sera employée pour le projet TSAR (www.lirmm.fr/tsar/)
Mots clés : chiffrage sélectif, compression JPEG
Trang 6Abstract
Encryption plays an important role in the security to protect the information But it demands a lot of time to process so it is not suitable for the real-time application; for the device portable And for some type of digital information, for example, image, video and sound, we can’t understand the content of information which was full encrypted without decrypt it, so it is not good for demonstration and we can’t do a pre-selection of information we want
One way to solve it is selective encryption That is we encrypt only a portion of the data By exploiting the structure of the file which we want to do selective encryption, we can find which parts we can do encryption In my stage, I review the method of selective encryption applied
to image and implement an algorithm which will be used as demo application for the project TSAR (www.lirmm.fr/tsar/)
Keywords: selective encryption, JPEG compression
Trang 7Remerciements
Je voudrais tout d’abord remercier Monsieur William PUECH et Monsieur Marc CHAUMONT qui m’ont accueilli dans l’équipe de recherche, ICAR (Image & Interaction), du Laboratoire d‘Informatique, d’ Electronique et de Microélectronique de Montpellier (LIRMM)
Je tiens à remercier tout particulièrement William PUECH et Marc CHAUMONT pour m’avoir encadré pendant six mois Je les remercie pour leur contact chaleureux, leurs conseils et encouragements pendant mon travail
Mes remerciements les plus sincères vont également à tous les professeurs et au personnel
de l’Institut francophonie pour l’Informatique dans lequel j’ai pu apprendre les meilleurs cours pour leur soutien durant mes études à l’IFI
Je tiens à remercier Hamed Ahmadi Nejad pour son code source libre de JPEG et George Anescu pour son source code libre de cryptage AES Leurs codes sources facilitent ma programmation
Je veux exprimer mes remerciements aux collègues de l’équipe ICAR (Image et Interaction) pour leur assistance pendant mon stage Je remercie également les services administratifs à l’accomplissement des formalités nécessaires
En fin, je remerci à ma famille et à mes amis pour leur soutien et leur encouragement permanents
Trang 8Introduction
Les réseaux constituent une méthode de communication essentielle de nos jours; plusieurs sortes d’informations se transfèrent (email, document, sons …) et le problème de sécurité apparait On peut écouter, capturer, modifier et retransmettre ces informations Le chiffrage joue donc un rôle important dans la solution d’empêcher l’utilisation sans autorisation Cependant, il faut mettre beaucoup de temps pour le chiffrage et le déchiffrage de tous les données donc ce n’est pas approprié, par exemple, pour l’application en temps réel De plus, quelques fois, selon la demande de la sécurité ou selon la structure de données, on ne doit pas toujours chiffrer toutes les données pour assurer la sécurité mais seulement une partie de ces données
A partir de ces besoins, une nouvelle direction de chiffrage – cryptage sélectif – est apparue C'est-à-dire on fait un chiffrage d’une partie sélectionnée de données au lieu de faire un chiffrage de toutes les données En exploitant la structure de données particulières et leur méthode de compression (image, document …), on peut diminuer le temps de calcul ainsi que des ressources nécessaires Son avantage permet de se déployer sur les dispositifs comme téléphone portable ou peut être appliqué à des applications temps réel, …
Dans le carde du projet TSAR (Transfert Sécurisé d'image d'Art haute Résolution), www.lirmm.fr/tsar/ , l’équipe ICAR – Image & Interaction, www.lirmm.fr/icar/, du LIRMM (Laboratoire d'Informatique, de Robotique et de Microélectronique de Montpellier) est
un des cinq partenaires qui contribuent aux études de chiffrage sélectif à ce projet Sous la direction de M Willam Puech, responsable de l’équipe ICAR, et M Marc Chaumont, je fais les études sur la compression JPEG et en suite, le chiffrage sélectif et particulièrement, l’algorithme dans ce domaine proposé par William PUECH et al [RBP06] Pour la partie d’expérimentation et sous la demande de mon responsable de stage et le projet TSAR, j’implémente des applications : une application de chiffrage sélectif appliquée aux images JPEG, une version appliquée à la détection de visage dans l’image et une application à la vidéo surveillance
Puis, je fais une étude sur la distribution de chaque coefficient AC dans une image Le coefficient AC est reçu par une transformation discrète appelé TCD, et la compression JPEG réalise la compression avec perte par traitement ces coefficients L’étude de la distribution
de chaque coefficient permet d’améliorer l’algorithme de compression, par exemple, par améliorer le tableau de quantification A partir de cette étude, en basant des outils mathématiques et le logiciel Matlab, je réalise des expérimentations sur la distribution
de tous les coefficients Le but de cette expérimentation est de tester si l’on peut utiliser une loi pour modéliser la distribution de tous les coefficients après le chiffrage
Trang 9Le rapport se divise en 5 parties principales :
- La première partie introduit la compression JPEG L’image transférée sur le réseau subit souvent une compression, particulièrement la compression JPEG donc qu’une étude complète de cette norme de compression nous permet de bien comprendre la structure et la procédé de la compression JPEG , depuis on peut bien comprendre les algorithmes de chiffrage sélectif appliqués à ce type d’image
- La deuxième partie fait une étude du chiffrage sélectif Dans cette partie, j’étudie les algorithmes de chiffrage sélectif appliquant aux images JPEG et JPEG2000
en me basant des articles existants dans ce domaine
- La troisième partie parle de la distribution de chaque coefficient AC de la compression JPEG Dans cette partie, nous faisons attention particulièrement aux articles qui nous donne des développements mathématiques sur la distribution de chaque coefficient AC car ils nous donnent une vue plus exacte que celle des observations basées sur des cas particuliers
- La quatrième partie présente des applications implémentées en utilisant l’algorithme de William PUECH et al [RPB06] et des observations de la distribution de tous les coefficients en basant des méthodes de vérification statistique Cette partie est ma contribution principale à mon stage, ce sont des logiciels pour le projet TSAR Je propose une méthode pour le chiffrage sélectif des visages appliquant à l’image dans le domaine spatial
- La dernière partie est une conclusion de mon travail de stage Nous revenons principalement sur les méthodes de chiffrage sélectif et leur domaine de traitement et mes contributions principales dans ce stage
Trang 101 Compression JPEG
La norme JPEG indique deux classes de codage et de décodage, à savoir la compression avec perte et la compression sans perte La compression sans perte est basée sur une méthode prédictive utilisant des valeurs de pixels voisines, et la transformation TCD est utilisé pour le mode avec perte La norme de compression JPEG qui est la plus utilisée est
la norme de compression avec perte Et les études de cette norme de compression nous permettent de comprendre les algorithmes de chiffrage sélectif qui seront présentées dans la partie suivante Il y a quelques sources principales que j’ai utilisées pour étudier cette compression, particulièrement, le livre de Mohammed Ghanbari [M03], “Standard Codecs : Image Compression to Advanced Video Coding” En outre, le livre de David Solomon [S07], Data Compression, et le livre de la norme JPEG [CCITT] fourni par organisation W3C sont les suppléments intéressants
1.1 Compression sans perte
Figure 1.1 : Schéma de la compression sans perte JPEG
La prédiction est de type DPCM simple (différentiel pulse code modulation), ó chaque pixel
de chaque composant de couleur est codé avec une manière différent La prédiction pour un pixel X d'entrée est faite à partir des combinaisons de trois pixels voisins aux positions a, b et
c de la même image du même composant de couleur, comme représenté sur la figure suivante :
Figure 1.2 : Schéma de la prédiction fondée sur les 3 voisinages
Trang 11La prédiction est alors soustraite de la valeur réelle du pixel à la position X, et la différence est codé en utilisant le codage par entropie (le codage Huffman ou le codage arithmetique)
1.2 Compression avec perte
En plus de la compression sans perte, JPEG définit trois modes de compression avec perte :
le mode séquentiel, le mode progressif et le mode hiérarchique, qui sont tous fondés sur la transformation en cosinus discret (TCD) pour atteindre une compression substantielle tout en produisant une image reconstructible avec haute visuelle fidélité La différence principale parmi ces modes est la manière par laquelle le coefficient TCD est transmis, pas la façon de compression
Dans cette partie, j’introduis la compression avec perte dans le mode séquentiel utilisant la compression de Huffman C’est un schéma général de compression JPEG que tous les logiciels doivent fournir
Formule 1.1 : Transformation de l’espace de couleur YUV et RGB
Après, l’image est divisée de gauche à droite et de haut en bas en blocs de 8x8 pixels sans superposition Chaque bloc est codé par TCD, et tous les 64 coefficients transformés sont quantifiés à la qualité désirée Les coefficients quantifiés sont immédiatement codés par entropie afin de minimiser le stockage de coefficients
Trang 12Voici les formules de la transformation TCD, qui permet de passer de l’espace spatial en l’espace fréquentiel
avec
Formule 1.2 : TCD et TCD inverse
F(u,v) : coefficient TCD
Img(x,y) : valeur de pixel dans la position x, y
Le schéma suivant illustre l'algorithme de la compression JPEG en mode séquentiel Chaque échantillon de 8-bits est décalé par une soustraction 28-1 ou 128 avant d’une transformation TCD Ceci est connu en tant que décalage de niveau de DC (DC level shifting) Les 64 coefficients de TCD sont quantifiés selon la matrice de quantification qui est spécifiée à chaque application
Figure 1.3 : Schéma de JPEG en mode séquentiel
Si les éléments des tableaux de quantification de la luminance et de la chrominance sont représentés par Q(u, v), un coefficient TCD quantifié à location (u,v) est indiqué par :
Trang 13ó F(u, v) est la valeur du coefficient transformé avant la quantification, et implique une action d’arrondir de la division au nombre entier le plus proche Au décodeur, des coefficients quantifiés sont spécifiés par :
Figure 1.4 : Tableau de quantification défaut
Un facteur de qualité q_JPEG est normalement employé pour contrơler les éléments de la
matrice de quantification Q(u, v) La gamme des valeurs de pourcentage de q_JPEG est entre 1 et 100 Par exemple, les matrices de quantification de JPEG (Figure 1.4) sont employées pour q_JPEG = 50, pour la luminance et la chrominance, respectivement Pour d'autres facteurs de qualité, les éléments de la matrice de quantification, Q(u, v), sont multipliés par un facteur de compression , défini comme :
Formule 1.3 :Formule pour déterminer le facteur de compression
Pour la qualité de 100%, q_JPEG = 100, tous les éléments de table de quantification sont fixés à 1
Après la phase de quantification, le coefficient DC (généralement visé comme (0.0)) et les 63 coefficients AC sont codés séparément comme représenté par la figure 1.5 Les coefficients
DC sont codés en DPCM en utilisant la valeur de coefficient DC de bloc précédent, comme représenté par la figure 1.5, DIFF = DCi - DCi-1 Le but de ce traitement est d’exploiter la corrélation entre les valeurs DC des blocs adjacents et les coder plus efficacement car ils contiennent typiquement la plus grande partie d’énergie d'image Les 63 coefficients AC
Trang 14commençant à partir du coefficient AC(1,0) sont codés par plage après un balayage de zigzag comme représenté sur la figure 1.5
Figure 1.5 : Préparation des coefficients TCD pour le codage par entropie
Le but de l'adoption d'un modèle de balayage de zigzag est de faciliter le codage par entropie en rencontrant d’abord les coefficients les plus susceptibles d’être non-nuls C'est
dû au fait que, pour la plupart des scènes naturelles, l'énergie d'image se concentre principalement dans quelques coefficients de basse fréquence
Codage par plage (Run length coding)
Le codage par entropie est accompli en deux étapes La première étape est le transfert des coefficients quantifiés TCD à un ensemble intermédiaire de symbole Dans la deuxième étape, des codes de codage par plage sont assignés à chaque symbole Pour la norme JPEG, un symbole se compose deux parties : un code de codage par plage (VLC) pour la première partie, normalement nommé le symbol-1, suivi d'une représentation binaire de l'amplitude pour la deuxième partie, symbol-2 Des tableaux Huffman pour les coefficients
DC et AC sont cités dans l’annexe
Codage de coefficients DC
Au lieu d'assigner différents code binaire de longueur variable (par exemple le code binaire
de Huffman) à chaque DIFF (la différence entre deux coefficient DC consécutifs ou DCi –
DCi-1), les valeurs de DIFF sont classées par catégorie en se basant sur la gamme de magnitude appelée CAT La figure 1.6 montre les catégories pour la gamme des amplitudes
de JPEG en mode séquentiel Puisque les valeurs de coefficient TCD sont dans la gamme -2047 à 2047, il y a 11 catégories pour les coefficients non nuls La catégorie nule n'est pas employée pour des symboles, elle est employée pour définir la fin du code du bloc (EOB)
Trang 15Figure 1.6 : Catégories (CAT) de codage séquentiel
Le CAT après avoir été codé est ajouté avec des bits additionnels pour spécifier la valeur actuelle de DIFF (amplitude) Le CAT est symbol-1 et les bits ajoutés représentent symbol-2
Quand le DIFF est positif, les bits ajoutés sont les bits d’ordre inférieur du DIFF Quand il est négatif, les bits ajoutés sont les bits d’ordre inférieur du DIFF-1 Les bits d’ordre inférieur commencent à partir du point ó le bit de poids fort de bits ajoutés est 1 si DIFF positif et 0 si DIFF négatif Par exemple : pour DIFF = 6 = 0000 00110, les bits ajoutés commencent à partir de 1, par conséquent ils sont 110 En outre, puisque 6 est dans la gamme de 4 à 7, la valeur du CAT est 3 A partir de table de coefficients AC (tableau 2 de l’annexe), le code binaire pour CAT = 3 est 100, donc le code binaire pour DIFF = 6 est 100110, ó 100 est le code de VLC de CAT (symbol-1) et 110 est le code binaire ajouté (symbol-2)
Pour un DIFF négatif, comme DIFF = -3, d'abord, -3 est dans la gamme de -3 à -2, par conséquent, d’après la figure 1.6, CAT = 2, et son code VLC du tableau de l'annexe est 011 Pour trouver les bits ajoutés, DIFF - 1 = -4 = 1111…100, ó les plus bas ordres bits sont 00, car le bit de poids fort est 0, donc le code binaire devient 01100
Codage des coefficients AC
Pour chaque coefficient AC non - nul dans l'ordre de balayage de zigzag, symbol-1 est décrit comme un symbole bidimensionnel de (RUN, CAT), ou parfois appelé (RUN, SIZE) Pour le codage séquentiel, le CAT est la catégorie pour l'amplitude d'un coefficient non nul dans l'ordre de zigzag, et le RUN est le nombre de zéros précédant un coefficient non nul La longueur maximum de RUN est limitée à 15 Le codage de RUN qui est grand que 15 est fait par un symbole spécial (15, 0), qui a une longueur de RUN de 15 coefficients nul a suivi d'un coefficient ayant l’amplitude 0 Par conséquent, nous pouvons considérer comme symbole d’extension avec 16 coefficients nuls
Une fin de bloc (EOB) indique que le reste des coefficients du bloc dans l'ordre de balayage
de zigzag sont quantifiés à zéro Le symbole d'EOB est représenté par (RUN = 0, CAT = 0)
Trang 16Le tableau de codage AC pour symbol-1 se compose d'un code binaire Huffman pour chaque événement composé possible Le tableau de coefficients AC (table 2 de l’annexe) montre les codes binaires pour toutes les combinaisons possibles de RUN et CAT de symbol-1 Le format du bit additionnel (symbol-2) est le même que le codage de DIFF dans des coefficients DC Pour le k-ièmecoefficient AC dans l'ordre de balayage de zigzag, ZZ(k), les bits ajoutés sont les bits d’ordre inférieur de ZZ(k) si ZZ(k) est positif, ou les bits d’ordre inférieur de ZZ(k) - 1, si ZZ(k) est négatif
Voici un exemple afin d’expliquer la manière de créer le vecteur Huffman pour faire le codage par entropie Des coefficients TCD quantifiés d'un bloc de luminance sont montrés sur la figure 1.7 Supposant que le coefficient DC dans le bloc précédent de luminance était
29, on veut trouver les codes binaires pour le codage des coefficients DC et AC
Figure 1.7 : Coefficients TCD quantifiés d'un bloc
On a DIFF = 31 - 29 = 2 D’arprès la figure 1.6, le CAT = 2 et selon le tableau de coefficients
AC Huffman, le code Huffman pour cette valeur de CAT est 011 Pour trouver les bits ajoutés, puisque DIFF = 2 > 0, et 2 = 000 0010, donc les bits ajoutés sont 10 Par conséquent, le code binaire pour coder ce coefficient DC est 01110
Codes binaires pour les coefficients AC
Le balayage commence à partir du premier coefficient AC non nul, qui a une valeur de 18 D’après la figure 1.6, la valeur de CAT pour 18 est 5, et puisqu'il n'y a aucun coefficient AC nul avant lui, puis RUN = 0 Par conséquent, symbol-1 est (0, 5) D’après le tableau 2 de l'annexe, le code binaire pour (0, 5) est 11010 Le symbol-2 est les bits d’ordre inférieur de ZZ(k) = 18 = 000 010010, qui est 10010 En conséquence, le premier code binaire AC est
1101010010
Trang 17Le troisième coefficient AC non nul dans le balayage est -13, qui a un coefficient nul avant lui Donc, RUN = 1 et, la valeur de CAT correspondante est 4 En consultant le tableau 2 de l'annexe, le code binaire pour (RUN = 1, CAT = 4) est 111110110 Pour trouver symbol-2, ZZ(k) -1 = -13 - 1 = -14 = 111 110010 Donc, symbol-2 est 0010, et le code binaire entier est 1111101100010
Puisque 5 est le dernier coefficient AC non nul, donc le codage se termine ici et la fin du code du bloc (EOB) qui est défini comme (0, 0) est transmise En utilisant le tableau 2 de l'annexe, le code binaire est 1010
La compréhension de la compression JPEG nous permet de comprendre les algorithmes de chiffrage sélectif appliquant à ce type d’image qui seront présentés dans la partie suivante Les études de la structure l’image est une nécessité afin d’étudier les algorithmes de chiffrage sélectif
Trang 182 Cryptage sélectif
Il y a des applications qui demandent une pleine sécurisation, par exemple, des documents confidentiels de l’armée, des documents de gouvernements Pour la sécurité, il faut mettre beaucoup de temps pour coder et décoder ces documents
Mais il y a des scénarios ó le plein chiffrage n’est pas bien approprié, car il demande beaucoup de temps de traitement, ou à cause de la limitation de ressource de calcul, ou la demande de la sécurité n’est pas dûre Dans ce cas-là, le chiffrage sélectif est convenable
en terme de la sécurité et du temps de traitement, de ressource de traitement
Cette méthode consiste à encrypter une partie de données afin d’empêcher la pleine utilisation de données Sans avoir la clef de déchiffrage, on peut seulement obtenir la version ayant la qualité mauvaise
Dans cette partie, j’étudie les algorithmes de chiffrage sélectif existants Je présente les algorithmes existants selon le domaine de travail et la méthode de compression Il y a deux domaines de chiffrage sélectif : domaine spatial, domaine fréquentiel Le domaine fréquentiel est obtenu par une transformation discrète comme TCD
Le chiffrage sélectif peut s’appliquer avec ou non la compression Dans le cas ó il est utilisé durant une compression, on peut exploiter la structure de cette compression afin de choisir le composant pour faire le chiffrage
Trang 19Figure 2.1 : Schéma de cryptage sélectif dans la compression
Figure 2.2 : Image obtenue sans déchiffrage
Trang 20Voici des exigences citées dans [DB02] par Marc Van Droogenbroeck et Raphặl Benedett pour le chiffrage sélectif appliquant à l’image comprimée Pour assurer la visulisation de l’image et le taux de compression, ainsi que ne pas changer le format du fichier, il faut suivre ces règles
[Acceptation visuelle] une partie de l'information peut être vue mais l'image chiffrée devrait
sembler bruitée
[Chiffrage sélectif] le chiffrage se produit après la compression et laisse quelques parties
de données non codées,
[Débit binaire constant] le chiffrage doit préserver la taille du flux de bit
[Conformité de flux du bit] l'étape de chiffrage doit produire un flux de bit conforme au
format choisi
Les deux premières exigences s’obtiennent par le cryptage sélectif Les deux dernières exigences s’obtiennent en faisant le chiffrage durant la compression, précisément, après la quantification et on doit ne pas changer la structure du flux codé
Avec cette approche, on peut appliquer aux normes de compression avec perte comme JPEG, JPEG2000 … et pour la compression sans perte on peut exploiter d’autres approches
2.1 Approche de chiffrage sélectif de l’image
2.1.1 Chiffrage sélectif par plan de bits
Un pixel est présenté par un nombre de bits fixé, par exemple 8 bits On considère un plan
de bit comme l’ensemble de bits ayant la même position dans sa représentation binaire, par exemple, tous les troisièmes bits des pixels Dans ce schéma, on crypte des bits de chaque plan en choisissant des plans cryptés
Trang 21Figure 2.3 : 12.5% et 25% données cryptés [PSU02]
Il y a des travaux de [PSU02] et la méthode «nạve « de [DB02] Ils proposent des techniques différentes de chiffrage sélectif par plan de bits [PSU02] font le chiffrage sur le bit de poids fort et [DB00] font le chiffrage, par exemple, sur 5 bits ou 7 bits de chaque pixel
Figure 2.4 : Chiffrage de 5 plan de bits et de 7 plan de bits [DB02]
La valeur de PSNR ici a le but de déterminer la distorsion produit par le chiffrage des bits Nous pouvons constater que si nous encryptons les bits de poids fort [PSU02], la valeur de PSNR correspondante est petite, c'est-à-dire que l’image reçue est très bruitée Par contre, dans l’algorithme de [DB02], ils n’encryptent pas le bit de poids fort, donc, nous pouvons comprendre l’image
2.1.2 Chiffrage sélectif avec compression JPEG
Dans cette partie, on va exploiter la structure de JPEG pour appliquer le chiffrage sélectif Tang [T99] propose une technique appelée la permutation zigzag qui est applicable aux vidéos et aux images JPEG Bien que leur méthode offre plus de confidentialité, elle augmente le débit global car elle casse la corrélation parmi les coefficients
Trang 22Figure 2.5 : Séquence zigzag de JPEG
1 Générer une permutation d’un ensemble de nombres entiers de 1 à 64
2 Appliquer la procédé de « division » après la phase de quantification
3 Appliquer la permutation au bloc reçu dès l’étape 2 ; passer le résultat au codage par entropie
Comme je dis dans la partie de compression JPEG, la valeur de DC est plus grande que les autres coefficients dans un bloc, ce coefficient est donc identifiable Avec seulement la valeur de DC, on peut déterminer la figure générale de l’image La procédé de « division «
a un but de cacher l’information DC pour rendre non identifiable l’image en divisant DC (8 bits) en deux partie : b7b6b5b4 et b3b2b1b0 La nouvelle valeur de DC est b3b2b1b0 qui est petite et la nouvelle valeur du dernier coefficient AC non nul est remplacé par b7b6b5b4 Après une permutation, on ne peut pas déterminer la valeur de DC
[LSW04] suggère une méthode similaire en faisant une permutation du plan de couleur, ensuite des permutations de coefficients par régions et enfin, un chiffrage des signes de coefficients Ce qui est intéressant dans ce schéma est qu’on peut continuer à comprimer des images après le cryptage C'est-à-dire, on ne doit pas décrypter l’image pour faire une autre compression
Figure 2.6 : Image encryptée avec l’ algorithme de Tang
Trang 23Figure 2.7 : Image décryptée avec le taux de compression de 60% et 20%
1 Permutation de plan de couleur :
Les positions des blocs de TCD dans le plan de luminance et chrominance sont mélangées
en utilisant une méthode de génération de nombre pseudo – aléatoire
2 Mélange des coefficients TCD
La confusion se réalise dans les sub-régions de coefficients pour conserver le taux de compression Ici, les coefficients sont divisés en quatre sous-sections (l1, l2, l3) : [1, l1], [l1+1,
l2], [l2+1, l3] et [l3+1, 63] Il signifie que des coefficients AC sont confondus en chaque section respectivement tout en laissant le coefficient DC inchangé L’auteur a proposé les valeurs (5, 20, 40) pour obtenir le moindre effet sur le taux de compression
sous-3 Chiffrage du signe de coefficient de TCD
Le signe est codé pour rendre plus sécurité à l’image Le taux de compression ne change pas et le temps demandé pour ce chiffrage est petit par rapport du temps de compression
Il y a deux raisons pour lesquelles on peut re-comprimer l’image après appliquer ce schéma
de chiffrage :
a Dans les étapes 1 et 2, on fait seulement la permutation, c'est-à-dire on change seulement les positions de coefficients dans chaque bloc, et non sa valeur Donc quand on fait une autre compression, après une permutation inverse, on peut retrouver l’image originale
b Dans l’étape 3, on encrypte les signes des coefficients, après une nouvelle quantification (compression), le signe ne change pas ou devient zéro (dans le cas ó la nouvelle valeur de
AC correspondante devient zéro) donc il n’affecte pas la phase de déchiffrage
Dans [DB02], Marc Van Droogenbroeck et Raphặl Benedett suggèrent une technique qui chiffre un nombre choisi de coefficients AC Ils ne chiffrent pas les coefficients DC car ils diffusent l'information importante et ils sont fortement prévisibles Le débit binaire est constant et il préserve la conformité de flux de bit, mais le procédé supporte mal le passage
à l’échelle et le procédé de compression et de chiffrage sont séparés, par conséquent il mène à l’augmentation du nombre de calcul
Trang 24Figure 2.8 : Chiffrage sélectif des coefficients AC
Voici les images cryptées par ses algorithme : Fig 2.8.a Seulement DC non-crypté - Fig 2.8.b DC et quatre premiers AC coefficients non-cryptés On peut constater que
seulement avec le composant DC, on peut déterminer la structure de l’image Et avec quatre
premiers coefficients AC non-cryptés, l’image est bien restaurée Cependant, le chiffrage se
fait séparément de la compression, donc elle ajoute un peu de charge Des étapes
principales sont :
- Lire le flux de bit JPEG
- Construire les tableaux de Huffman spécifié dans l’image
- Extraire les coefficients de TCD
- Chiffrer les coefficients
- Remplacer dans le flux original
Dans [D04], Marc Van Droogenbroeck propose aussi un schéma de chiffrage sélectif
d’image JPEG qui utilise une même idée Il ne chiffe pas les coefficients DC , il réserve des
valeurs RUN de chaque couple (RUN,AMPLITUDE) et il chiffre seulement les bits ajoutés
(AMPLITUDE) correspondants à un nombre de coefficients AC choisi dans chaque bloc
Trang 25Figure 2.9 : Cryptage sélectif en utilisant des coefficients AC
Figure 2.10 : Cryptage des régions locales
Il a proposé d’utiliser une « carte de sélection » pour crypter des régions sélectionnées de l’image Cependant, il faut demander un autre moyen pour détecter les locations chiffrées, donc ce n’est pas confortable, par exemple, il faut utiliser un autre fichier pour sauvegarder des locations de régions chiffrées
Dans [PU05], Roland Norcen et Andreas Uhl proposent une méthode pour JBIG , qui est principalement basée sur le nombre élevé de dépendances entre les couches de résolution
en mode progressif de JBIG Ils chiffrent seulement les couches inférieures de résolution afin
de réduire la quantité de données calculées Ils annoncent que seulement 1% - 2% de données doivent être cryptés pour sécuriser l’image
Trang 26Figure 2.11 : Chiffrage sélectif de JBIG en mode progressif
Dans [RPB06], Puech et al proposent un schéma de chiffrage sélectif utilisant des images JPEG à partir des idées de Marc Van Droogenbroeck et Raphặl Benedett [DB02] Leur proposition permet de combiner la phase de chiffrage durant la phase de compression, donc
le taux de compression n’est pas changé Voici le diagramme général de leur méthode :
Figure 2.12 : Chiffrage sélectif des coefficients après la quantification d’un bloc TCD
Trang 27Figure 2.13 : Créer le vecteur binaire clair à partir des coefficients TCD
Voici les étapes en détail :
1 Diviser l’image en blocs 8x8
2 Réaliser une transformation TCD dans chaque bloc, obtenir le domaine fréquentiel
3 Faire la phase de quantification
4 Créer le vecteur Huffman de chaque bloc, une séquence de {HEAD, AMPLITUDE}
5 Extraire la partie AMPLITUDE de tous les coefficients AC, sans la marque EOB, ZRL
6 Chiffrage avec l’algorithme AES en mode CFB (cipher feedback block ou mode par flot)
7 Remplacer l’AMPLITUDE avec les bits cryptés
Figure 2.14 : Chiffrage du vecteur Huffman avec AES en mode CFB
Trang 28On peut déterminer le nombre de bits encryptés, par exemple, 8, 16, 32 …pour chaque bloc selon la demande de sécurité ou de temps de traitement, et en conséquence, on peut déterminer le nombre de bit décrypté selon chaque demande aussi
L’auteur propose de créer le texte clair en collectant dans la direction inverse des valeurs de coefficient AC, c'est-à-dire (ACn, ACn-1, …, AC1) Car la plupart de l’énergie d’un bloc se trouve dans les premiers coefficients, donc on peut trouver une vue « progressive » si on décrypte seulement une partie des bits cryptés
L’auteur propose une application de chiffrage sélectif, « détection et chiffrage des visages dans une image » Ils utilisent le modèle de peau pour détecter le visage, selon ce modèle ; il
y a des intervalles spéciales pour les valeurs de peau On considère qu’un bloc de pixel a la couleur de peau si la valeur DC de Cb ; Cr d’un bloc satisfait la formule suivante :
S Cr
Cr Cb
88
avec CbS, CrS, S étant les seuils déminent si un bloc soit visage ou non Si un bloc satisfait cette formule, on va chiffrer le composant Y correspondant
2.1.3 Chiffrage sélectif avec compression JPEG2000
Figure 2.15 : Chiffrage sélectif de JPEG2000 avec l'algorithme de Norcen
Dans [NU03], Roland Norcen et Andreas Uhl proposent une approche employant JPEG2000 Ils font un cryptage d’une certaine partie des paquets de données en utilisant
Trang 29suffisant pour la sécurité grâce au fait que les caractéristiques importantes se trouvent au début du flux de bit de JPEG2000
Figure 2.16 : Image reçue par le chiffrage sélectif 10% des données.
Dans [DAHM06], Diaz et al proposent un schéma simple de chiffrage sélectif avec JPEG2000 et un schéma de gestion de clefs Ils chiffrent 10% de l’information depuis la marque SOD (Start of Data) Cette approche est proposée afin d’être utilisée par une application de téléphone portable
Nous présentons dans cette partie une état de l’art sur les algorithmes de chiffrage sélectif
de l’image JPEG et JPEG2000 Nous pouvons trouver qu’il n’y a pas beaucoup d’algorithmes de chiffrage sélectif Un raison est que ces algorithmes dépendent de la structure de compression qui est fixe et le travail principal n’est que la recherche sur quelles
parties nous pouvons faire un chiffrage
Dans la partie suivante, nous étudions la distribution de chaque coefficient AC de compression JPEG Comme JPEG fait la compression en traitant ces coefficients, l’étude sur
la distribution de ces coefficients nous permet de comprendre ses caractéristiques statistiques et nous donne un point de commencement pour faire une étude sur la distribution de tous les coefficients AC