• Aucun résultat trouvé

Sécurité Des Images Numériques Compressées Jpeg

N/A
N/A
Protected

Academic year: 2021

Partager "Sécurité Des Images Numériques Compressées Jpeg"

Copied!
98
0
0

Texte intégral

(1)

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Université Djilal Liebes– Sidi Bel Abbes –

Faculté des Sciences Exactes

THESE

DE DOCTORAT 3

ème

Cycle

Présentée Par : BENIANI Rabab

Domaine : Mathématique et informatique Spécialité : Informatique

Intitulé de la formation : Réseaux et Sécurité de L’Information

Sujet

Sécurité des images Numériques compressées JPEG

Soutenue publiquement, le 30/06/2019 , devant le jury composé de : Président : Dr. TOUMOUH Adil M.C.A Université Djillali Liabès

Examinateur : Dr. FEZZA Sid Ahmed M.C.A INTTIC-Oran

Examinateur : Dr. BOUKLI HACENE Sofiane. M.C.A Université Djillali Liabès

(2)

I

Remerciements

Je tiens à remercier particulièrement et chaleureusement Monsieur Kamel Mohamed FARAOUN, professeur { l’université de sidi bel abbes, pour son encadrement, sa patience, sa présence, ses conseils très précieux, son dévouement et sa disponibilité à l’élaboration de cette thèse.

Je tiens à remercier chaleureusement tous les membres de jury qui ont accepté de juger ce travail; le président du jury le Dr. Adel TOUMOUH, ainsi les examinateurs le Dr.Sofiane BOUKLI HACENE et le Dr. FEZZA Sid Ahmed.

Mes remerciements vont aussi à tous les membres du laboratoire EEDIS (Evolutionary Engineering and Distributed Information Systems) pour le cadre de travail.

J’adresse aussi mes sincères remerciements { tous ceux qui ont contribué directement ou indirectement { l’aboutissement de cette thèse. Merci { ma mère { qui je dédie tout ce travail et qui m’a donné le courage de le mener { bien. Merci à mes amis : Amine, Nora, Mamia, khadija, Zakia.

Enfin, ce travail n’a pu atteindre ses objectifs sans la contribution de prés ou de loin de plusieurs personnes auxquelles j’adresse mes chaleureux remerciements.

(3)

II

Table des matières

Table des matières II Table des figures V

Liste des tableaux VI Liste des abréviations VII

Introduction général 1

Chapitre 1 : La norme de compression JPEG 6

1.1 Introduction . . . . . . .6

1. 2 Usage typique . . . . . . 7

1.3 Extensions de nom de fichiers JPEG . . . 7

1.4 La compression JPEG . . . . 8

1. 4.1 Principe générale . . . 8

1.4.2 Transformation des couleurs . . . . 9

1.4.3 Sous-échantillonnage de la chrominance . . . . 11

1.4.4 Transformée en Cosinus Discrète par Bloc 8x8(DCT) . . . 12

1.4.5 Quantisation et balayage en zig-zag . . . 14

1.4.6 Compression d’un bloc fréquentiel . . . .15

1.4.6.1 Composante continue : DPCM, magnitude et arbre DC . . . . . . .15

1.4.6.2 Le codage RLE et Arbres AC . . . .17

1.4.6.3 Le codage de Huffman . . . 18

1.5 Syntaxe et structure . . . .20

1.6 Conclusion . . . . . . 23

Chapitre 2 : Cryptographie et systèmes dynamiques 25

2.1 Introduction . . . . 25

2.2 La Cryptologie . . . . . 25

2.2.1 Cryptographie : concepts essentiels. . . .25

2.2.2 Objectif de la cryptographie. . . . 27

2.2.3 La sécurité parfaite. . . 27

2.2.3.1 La sécurité au sens Shannon . . . . . . . . 27

(4)

III

2.2.5 Le chiffrement symétrique. . . . . . . 29

2.2.5.1 Le chiffrement par bloc. . . . 29

2.2.5.2 Le chiffrement par flos. . . 30

2.2.6 Principe de génération de nombre pseudo aléatoire. . . . . . .30

2.2.6.1 Propriétés d’une séquence pseudo aléatoire. . . 31

2.2.7 La cryptanalyse . . . 32

2.3 Système dynamique : Automates cellulaires et théorie du chaos . . . . 34

2.3.1 Les automates cellulaires. . . 35

2.3.1.1 Les concepts clé des automates cellulaires . . . . 36

2.3.1.2 Les caractéristiques des automates cellulaires. . . . . . .37

2.3.1.3 Automates cellulaires unidimensionnels élémentaires. . . .39

2.3.1.3.1 L’automate cellulaire élémentaire -Régle30-. . . . 39

2.3.1.4 Quelques approches de la cryptographie basé sur les AC. . . 40

2.3.2 Les systèmes chaotiques. . . . 41

2.3.2.1 Caractéristiques du chaos. . . . . . . 42

2.3.2.2 Quelques approches de la cryptographie basée sur chaos . . . . 44

2.4 Mesures d'évaluation statistiques pour évaluation de la sécurité et de la compression. . 44

2.4.1 Mesures d’analyse statistique . . . 44

2.4.1.1 Analyse d'uniformité . . . 44

2.4.1.2 Analyse de corrélation . . . 45

2.4.2 Test de sensibilité . . . . . . . . 46

2.4.2.1 Robustesse contre les attaques différentielles . . . . . . 46

2.4.2.2 Sensibilité de la clé . . . . 47

2.4.3 Analyse de l'espace clé . . . .47

2.4.4 Mesures d’analyse de performance. . . .48

2.4.4.1 Estimations de la vitesse de calcul . . . 48

2.4.4.2 Analyse du rapport de signal sur le bruit . . . 48

2.5 Conclusion . . . 49

Chapitre 3 : Crypto-compression des JPEGs : Etat de l’art 50

3.1 Introduction . . . . . . . .51

3.2 Technique de cryptage- compression . . . . . . 52

3.3 Technique de compression-cryptage . . . . . . 53

3.4 Technique de compression-cryptage hybride . . . . . . 56

3.5 Comparaison entre les différentes approches . . . .60

3.6 Conclusion . . . .62

Chapitre 4 : Chiffrement d’image compressé de type JPEG 63

4.1 Introduction . . . . . . . 64

(5)

IV

4.2.1 Génération du keysream: une approche mixte de AC-chaos . . . 64

4.2.1.1. Génération de Séquence d'espacement Ssite . . . . 65

4. 2.1.2. Génération de la séquence d'espacement de temps Stime . . . . . . . . 65

4.2.1.3. Processus de génération de keystream . . . . 66

4.2.2. Description du schéma de chiffrement-compression hybride. . . . . . .66

4.2.3. Description du schéma de déchiffrement-décompression hybride . . . 69

4.3. Résultats expérimentaux . . . . . . . 70

4.3.1 Analyse de performance . . . . . .70

4.3.2 Analyse du taux de compression . . . . . . . . . . . 73

4.3.3 Analyse de la vitesse de calcul . . . . . . . 73

4.3.4 Analyse statique . . . . . . 74

4.3.4.1 Analyse d'uniformité . . . . . . .74

4.3.4.2 Analyse de corrélation . . . . . . . . 75

4.3.5 Analyse de sensibilité de la clé de chiffrement . . . . . . 77

4.4 Conclusion . . . . . . . . . . 79

Chapitre 5 : Conclusion générale et perspective 80

(6)

V

Table des figures

1.1 Les étapes du codage/décodage JPEG . . . . . . . . . . . . . .9

1.2 Perception de l’œil humain . . . . . . . . . . . . . . . 10

1.3 Transformation RGB vers YCrCb . . . . . . . . . . . . . . . .10

1.4 Composantes Y, Cb et Cr avec et sans sous-échantillonnage. . . . . . . . . 12

1.5 Parcours en zig-zag . . . . . . . . . . . . . . . . . . . 15

1.6 Composante continue (DPCM) . . . . . . . . . . . . . . . . . 16

1.7 Représentation d’un arbre binaire de Huffman . . . . . . . . . . . 19

2.1 Chiffrement de Vernam. . . . . . . . . . . . . . . . . 28

2.2 Chiffrement symétrique . . . . . . . . . . . . . . . . 29

2.3 Schéma de chiffrement par flot . . . . . . . . . . . . 30

2.4 Schéma de déchiffrement par flot. . . . . . . . . . . . 31

2.5 l’attaque contre un cryptosystème. . . . . . . . . . . . 34

2.6. Exemple d’un automate cellulaire. . . . . . . . . . 36

2.7 Les dimensions d’un AC. . . . . . . . . . 37

2.8 Le voisinage d’une cellule. . . . . . . . . . . 38

2.9 Exemple d’automates cellulaires élémentaires-règles 90,30 et 254. . . 39

2.10 Diagramme espace-temps de la règle 30. . . . . . . . . . 40

2.11 Diagramme de bifurcation de la récurrence logistique. . . . . . . . . . 42

2.12 Evolution dans le temps pour deux conditions initiales très proches. . . . . . .43

2.13 Evolution dans le temps d’un système chaotique, comparé { une sinusoïde. . . . 43

4.1. Diagramme proposée de génération de keystrem . . . . . . . . . 67

4.2. Schéma proposé de compression-chiffrement hybride . . . . . . . . . . .68

4.3 Schéma proposé de décompression-déchiffrement hybride . . . . . . . . . .69

4.4 L'image Barbara compressée-chiffré et l’image reconstruite. . . . . . . . . . . . . 72

4.5Illustration d'histogramme d'une image claire et image chiffrée . . . . . . .75

4.6 Distribution de corrélation des deux pixels adjacents. . . . . . . . . 76

(7)

VI

Liste des tableaux

1.1 Matrice de quantification Q. . . . . . . . . . . . . . . .14

1.2 Classes de magnitude de la composante DC . . . . . . . . . . . . . 16

1.3 Signification des symboles RLE . . . . . . . . . . . . . . . . .18

1.4 Marqueurs JPEG . . . . . . . . . . . . . . . . . . . 22

2.1 L’opération XOR . . . . . . . . . . . . . . . . . . . 28

2.2 Espace des règles possibles d’automate cellulaire. . . . . . . . . . . . 38

2.3 La règle 30. . . . . . . . . . . . . . . . . . . 40

3.1 Approches de cryptage-compression . . . . . . . . . . . . . 53

3.2 Approches de compression-cryptage . . . . . . . . . . . . . 56

3.3 Approches de compression-cryptage hybride . . . . . . . . . . . . 60

3.4 Comparaison en termes de compression et robustesse de sécurité . . . . . . . 61

4.1 Ordre par défaut vs ordre de zigzag proposé . . . . . . . . . . . . 69

4.2 PSNR de l’image Lena reconstruite . . . . . . . . . . . . . . 71

4.2 PSNR de l’image Barbara reconstruite . . . . . . . . . . . . 71

4.4 PSNR de l’image Peppers reconstruite . . . . . . . . . . . . 71

4.5 CR de l’approche proposée et d'autres approches . . . . . . . . . .73

4.6 Durée de fonctionnement . . . . . . . . . . . . . . . 74

4.7 Corrélation entre pixels . . . . . . . . . . . . . . . . .77

(8)

VII

Liste des abréviations

AC Tout coefficient DCT pour lequel la fréquence n'est pas nulle CA Cellular Automata

CR Compression Ratio

DC Le coefficient DCT pour lequel la fréquence est nulle DCT Discrete Cosine Transform

DPCM Differential Pulse Code Modulation EXIF Exchangeable Image File

JPEG Joint Photographic Experts Group JPEG-LS Lossless JPEG

JFIF JPEG File Interchange Format MCU Minimum Coded Unit

MSE Mean Squared Error

NPCR Number of Changing Pixel Rate PSNR Peak Signal-to-Noise Ratio RLE Run Length Encoding RVB Rouge, Vert, Bleu

SCI Sensibilité aux conditions initiales TIFF Tagged Image File Format

UACI Unified Averaged Changed Intensity YCbCr Luminance; Chroma: Blue; Chroma: Red

(9)

1

Introduction générale

Le développement des technologies de l’information a un impact important sur les modes de communication humains, d’abord par des moyens conventionnels et par des moyens numériques. La communication via le service de messagerie a également évolué, passant de SMS (Short Message Service) à MMS (Multimedia Messaging Service). Le service de transmission de messages via des médias internet tels que le courrier électronique et les médias sociaux tels que Twitter, WhatsApp, Facebook, BBM, etc. peut également être effectué.

L'un des problèmes émergents est qu'une taille croissante de données numériques, en particulier des images fixes, est inévitable en raison du besoin d'images de haute qualité. En conséquence, un besoin d'espaces de stockage plus importants suit. Bien que les techniques de stockage sur les ordinateurs numériques aient connu un développement rapide, elles nécessitent souvent la réduction du stockage des données numériques. L'une de ces réductions se traduit par une limitation de la bande passante dans les systèmes de communication pour fournir une transmission de données plus rapide via les lignes de communication et un pourcentage plus faible d'échecs de téléchargement. Outre la rapidité de l'échange de données de taille croissante, la sécurité des données est extrêmement préoccupante en raison de la vulnérabilité des données envoyées via des lignes de communication à leur vol ou à leur extraction par des oreilles indiscrètes. Pour répondre à cette exigence, divers moyens ont été exploités et développés pour atteindre au protection du contenu des informations sensibles, plus précisément; les systèmes dynamiques, qui sont caractérisés par leur comportement chaotique erratique et complexe, et le plus attrayant étant que ces propriétés dynamiques peuvent être créées à partir de modèles mathématiques simples. De plus, on a fait remarquer que ces systèmes complexes peuvent être étudiés comme origine des transformations de chiffrement et de déchiffrement, dans lesquelles l’état initial d’un système dynamique est la clé du cryptosystème.

D’autre part, la compression et la cryptographie sont deux techniques opposées. Le cryptage garantit que les données transmises sont fiables et intégrales en les convertissant de données lisibles en données illisibles via un processus de codage. À l'inverse, une méthode de compression cherche à réduire la taille des données transférées ou stockées en recherchant et en supprimant des éléments de preuve ou des modèles de données en double. Cependant, la compression de données et le système cryptographique sont profondément connectés et mutuellement utiles, car ils peuvent être utilisés ensemble. Les objectifs sont de générer une plus petite taille de données; pour accélérer leur

(10)

Introduction générale

2

transmission, assurer sa sécurité et assurer la qualité des données lors de la reconstruction.

Motivations et problématique de recherche

Depuis qu’il y a eu une croissance remarquable de la puissance de calcul, et avec l’utilisation imparable et quotidienne des images numériques sur des réseaux ouverts, les chercheurs s’interrogent sur les meilleures solutions pour stocker et transmettre en toute sécurité le contenu de ces données visuelles numériques. En particulier, celles impliquant des informations sensibles et confidentielles liées à l'armée, les images numériques médicales des patients, ou même les intérêts personnels, qui ne devraient être accessibles que par leur personnel autorisé. Par conséquent, chaque fois qu'une image numérique doit être utilisée dans une application, la préservation de son contenu devient un problème critique. En raison des caractéristiques spécifiques des images numériques telles que la grande taille des données, la forte corrélation des pixels et la redondance élevée, les méthodes de cryptage traditionnelles telles que DES, IDEA ou AES, ne sont pas adéquates pour traiter les exigences de contenu de données visuelles, car elles sont à l'origine conçues pour sécuriser les données textuelles. De plus, ces moyens traditionnels semblent ne pas être efficaces, en particulier pour une utilisation pratique en ce qui concerne la vitesse et la puissance non raisonnables du matériel pour effectuer un cryptage d'image.

D'autre part, en raison de l'augmentation de quantité de données échangées via les systèmes de communications; plus d’un milliard d’images utilisées par jour rien que sur les réseaux sociaux, selon Touradj Ebrahimi professeur dirigeant du group JPEG[1], il est impératif de se tourner vers les formats compressées à savoir JPEG.

Face à ces deux problèmes; compression des images et assurer leur sécurité, la question qui se pose, pourquoi ne pas avoir les deux en même temps; compression et chiffrement sachant que la réalisation de ces deux concepts en cascade induit un certain nombre de défies. En effet, la compression des données et leur cryptage ultérieur ou inversement peuvent réduire le taux de compression ainsi que la robustesse de cryptage. Pour résoudre ce problème, plusieurs approches combinées ont été proposées, cependant ces méthodes entraînent généralement des problèmes de sécurité ou d’efficacité de la compression dans la pratique. Certains d’eux souffre d’une réduction substantielle de l’efficacité de la compression en raison de la réduction de la corrélation entre les pixels des images causés par les opérations de cryptage d’autre sont mois résistants devant les attaques de texte en claire ou contiennent des failles de sécurité.

(11)

Introduction générale

3

Contribution de la thèse

Cette thèse traite de l'incorporation de systèmes dynamiques dans le domaine de la cryptographie d’un part et la combinaison entre la cryptographie et le standard JPEG d’un autre part. Le but de ce travail est de concevoir et de valider de nouvelles propositions de compression-chiffrement d’image, dans le but d’assurer la sécurité, assurer la qualité des données lors de la reconstruction et générer une plus petite taille de données; pour accélérer leurs transmission.

Notre contribution impliquait l'utilisation conjointe du chaos des systèmes dynamiques et d’automate cellulaire comme outils de conception du cryptosystème, dans le but réel de tirer parti du point fort des deux paradigmes dynamiques et en combinant avec la compression JPEG sans pour autant affecter le taux de compression.

La robustesse et l'efficacité de la nouvelle approche proposée sont évaluées à l'aide des attaques cryptographiques couramment utilisées, notamment les attaques par sensibilité aux clés et les attaques statistiques. Une comparaison en termes de niveau de sécurité, de taux de compression et de performance temporelle est fournie en relation avec les méthodes existantes dans la littérature scientifique. En effet, les résultats obtenus de l’approche proposée indiquent les améliorations de taux de compression, de sécurité atteintes et la réduction de temps par rapport aux méthodes étudiés dans l’état de l’art.

Organisation de la thèse

Ce manuscrit est organisé en quatre chapitres suivis d’une conclusion générale. Une représentation globale sur les éléments qui constituent l’environnement de notre travail est présenté dans les deux premiers chapitres, après un aperçu de l’état de l’art ensuite notre contribution est détaillée dans le quatrième chapitre.

Nous présentons dans le premier chapitre un aperçu général du standard JPEG utilisé dans cette thèse, son concept de compression on se focalisant sur la compression avec perte, les caractéristique du fichier JPEG et à la fin nous citons quelques syntaxes les plus courant utilisés dans le flux de données JPEG.

Le deuxième chapitre se focalise sur la cryptographie et les systèmes dynamiques. Au début, nous parlons sur le principe de la cryptographie, les contraintes auxquelles elle doit faire face ainsi que les types d’attaques qui existe et qui peuvent viser les cryptosystèmes. Ensuite nous présentons un aperçu sur le principe des systèmes dynamiques, les automates cellulaires et le principe du chao. A la fin du chapitre nous présentons quelques outils d'évaluation communs et typiques des aspects de sécurité et de compression.

(12)

Introduction générale

4

Dans le troisième chapitre nous présentons les trois catégories qui existent dans la littérature scientifiques de la combinaison de la compression et la cryptographie en fonction de leurs séquences processuelles suivi à la fin par un tableau comparatif.

Le quatrième chapitre sera dédié à notre contribution qui s’intitule : Chiffrement des images compressés de type JPEG. Nous commencerons d’abord par présenter les motivations de cette proposition après, nous décrivons notre approche qui consiste à combiné entre la compression et la cryptographie. Le chiffrement est basé sur l'utilisation conjointe du chaos des systèmes dynamiques et d’automate cellulaire. Enfin une étude des performances et des analyses ont été faite, et comparées avec d’autres travaux de la littérature scientifique.

Le dernier chapitre est consacré à la conclusion et les perspectives sur l’optimisation de notre méthode en termes de compression et de cryptage simultanés.

(13)

5

Chapitre1 :

La norme de compression JPEG

Contenu

1.1 Introduction 1.2 Usage typique

1.3 Extensions de nom de fichiers JPEG 1.4 La compression JPEG

1.5 Syntaxe et structure 1.6 Conclusion

(14)

Chapitre 1 : La norme de compression JPEG

6

1.1 Introduction

Présent dans pratiquement tous nos smartphones, ordinateurs et appareils photos numérique, JPEG est le format d'image le plus répandu dans le monde et c’est grâce { cette technique de compression qu'on doit le fait qu'internet ne s'affaisse pas sous le poids des milliards de téraoctets de photos qui y sont déposées chaque jour. JPEG acronyme de Joint Photographic Experts Group, est aussi un groupe international d'experts spécialisés dans la compression d'image, dirigé depuis peu par un professeur de l'EPFL : Touradj Ebrahimi [1]. La norme communément appelée JPEG, de son vrai nom ISO/CEI 10918-1 UIT-T Recommandation T.81, est le résultat de l’évolution de travaux qui ont débuté dans les années 1980 avec les premiers essais en laboratoire de compression d’images [2].

Le groupe JPEG qui a réuni une trentaine d’experts internationaux, a spécifié la norme en 1991. La norme officielle et définitive a été adoptée en septembre 1992. Dans la pratique, seule la partie concernant le codage arithmétique est breveté, et par conséquent protégée par IBM, son concepteur.

JPEG normalise uniquement l’algorithme et le format de décodage. Le processus de codage quant à lui est laissé libre à la compétition des industriels et des universitaires. La seule contrainte est que l’image produite doit pouvoir être décodée par un décodeur respectant le standard. La norme propose un jeu de fichiers de tests appelés fichiers de conformité qui permettent de vérifier qu'un décodeur respecte bien la norme. Un décodeur est dit conforme s’il est capable de décoder tous les fichiers de conformité.

Parmi les choix proposés par la norme, on trouve des algorithmes de compression avec ou sans pertes (une compression avec pertes signifie que l’image décompressée n’est pas strictement identique { l’image d’origine) et différentes options d’affichage (séquentiel, l’image s’affiche en une passe pixel par pixel, ou progressif, l’image s’affiche en plusieurs passes en incrustant progressivement les détails, ce qui permet d’avoir rapidement un aperçu de l’image, quitte { attendre pour avoir l’image entière).

Dans son ensemble, il s’agit d’une norme plutôt complexe qui doit sa démocratisation { un format d’échange, le JFIF (JPEG File Interchange Format). En ne proposant au départ que le minimum essentiel pour le support de la norme, ce format s’est rapidement imposé, notamment sur Internet, amenant { la norme le succès qu’on lui connaît aujourd’hui. D’ailleurs, le format d’échange JFIF est également confondu avec la norme JPEG. Ainsi, un fichier possédant une extension .jpg ou .jpeg est en fait un fichier au format JFIF respectant la norme JPEG. Évidement, il existe d’autres formats d’échange supportant la norme JPEG

(15)

Chapitre 1 : La norme de compression JPEG

7

comme les formats TIFF ou EXIF. La norme de compression JPEG peut aussi être utilisée pour encoder de la vidéo, dans un format appelé Motion-JPEG.

1.2 Usage typique

L'algorithme de compression JPEG est le meilleur sur les photographies et les peintures de scènes réalistes avec des variations de couleur en douceur. Pour l'utilisation du Web, où il est important de réduire la quantité de données utilisée dans une image pour une présentation réactive, les avantages de compression du standard JPEG rendent le format JPEG populaire. Par exemple si on prend une comparaison avec un fichier brut, il n'y a pas photo, un fichier JPEG est 2,5 à 4 fois plus léger qu'un brut, selon l'appareil utilisé. Si le poids du JPEG ne dépend pas du tout de la définition du capteur (donc du nombre de pixels), il peut beaucoup varier en fonction de la complexité du sujet : une image figurant une scène plus détaillée, dans le sens "avec des sujets très diversifiés par leur couleur et leur luminosité", sera plus lourde qu'une image figurant un sujet plus uniforme.

L'utilisation typique de JPEG étant une méthode de compression avec perte, qui réduit la fidélité de l'image, elle ne convient pas à la reproduction exacte des données d'imagerie (comme certaines applications d'imagerie scientifique et médicale et certains traitements techniques d'images).

Les dessins au trait et aux autres graphiques textuels ou iconiques, où les contrastes nets entre les pixels adjacents peuvent provoquer des artefacts visibles, ces images sont mieux enregistrées dans un format graphique sans perte tel que TIFF, GIF, PNG ou un format d'image brut que d’être sauvegardé sous la forme JPEG. La norme JPEG inclut un mode de codage sans perte, mais ce mode n'est pas pris en charge dans la plupart des produits. JPEG ne convient pas non plus aux fichiers qui subiront plusieurs modifications, car une certaine qualité d'image est perdue chaque fois que l'image est recompressée, en particulier si l'image est recadrée ou modifiée, ou si les paramètres de codage sont modifiés. Pour éviter la perte d'informations sur les images lors des éditions séquentielles et répétitives, le premier montage peut être enregistré dans un format sans perte, puis édité dans ce format, puis finalement publié au format JPEG pour la distribution.

1.3 Extensions de nom de fichiers JPEG

Les extensions de nom de fichiers les plus communes pour les fichiers employant la compression JPEG sont .jpg et .jpeg, cependant .jpe, .jfif et .jif furent aussi utilisées. Il est aussi possible pour les données JPEG d'être embarquées dans d'autres types de fichiers, les

(16)

Chapitre 1 : La norme de compression JPEG

8

fichiers codés en format TIFF contiennent souvent une image miniature JPEG de l'image principale ; et les fichiers MP3 peuvent contenir une image JPEG d'une couverture, contenue dans le tag ID3v2.

L'extension JPEG est apparue dans les années 1990 parce que certains systèmes d'exploitation de cette période (ex. : Windows 95, 98, Me) ne permettaient pas d'utiliser d'extension de fichier de plus de 3 caractères.

1.4 La compression JPEG

1.4.1 Principe générale

Tout d’abord, l’image est partitionnée en macro blocs ou MCU pour Minimum Coded Unit. La plupart du temps, les MCU sont de taille 8x8, 16x8, 8x16 ou 16x16 pixels selon le facteur d’échantillonnage (voir section 1.4.3). Chaque MCU est ensuite réorganisée en un ou plusieurs blocs de taille 8x 8 pixels.

La suite porte sur la compression/décompression d’un bloc 8x 8. Tout d’abord, chaque bloc est traduit dans le domaine fréquentiel par transformation en cosinus discrète (DCT). Le résultat de ce traitement, appelé bloc fréquentiel, est encore un bloc 8x8 mais dont les coordonnées sont des fréquences et non plus des pixels. On y distingue une composante continue DC aux coordonnées (0; 0) et 63 composantes fréquentielles AC. Les plus hautes fréquences se situent autour de la case (7; 7).

L’œil étant peu sensible aux hautes fréquences, il est plus facile de les filtrer avec cette représentation fréquentielle. Cette étape de filtrage, dite de quantification, détruit de l’information pour permettre d’améliorer la compression, au détriment de la qualité de l’image (d’où l’importance du choix du filtrage). Elle est réalisée bloc par bloc { l’aide d’un filtre de quantification spécifique à chaque image. Le bloc fréquentiel filtré est ensuite parcouru en zigzag (ZZ) afin de transformer le bloc en un vecteur de 1x 64 fréquences avec les hautes fréquences en fin. De la sorte, on obtient statistiquement plus de 0 en fin de vecteur.

Ce bloc vectorisé est alors compressé en utilisant successivement plusieurs codages sans perte : d’abord un codage RLE pour exploiter les répétitions de 0, un codage des différences plutôt des valeurs, puis un codage entropique dit de Huffman qui utilise un dictionnaire spécifique { l’image en cours de traitement.

(17)

Chapitre 1 : La norme de compression JPEG

9 Figure1.1 Les étapes du codage/décodage JPEG

Les étapes ci-dessus sont appliquées { tous les blocs composant les MCU de l’image. La concaténation de ces vecteurs compressés forme un flux de bits (bitstream) qui est stocké dans le fichier JPEG. Ces données brutes sont séparées par des marqueurs qui précisent la longueur et le contenu des données associées. Le format et les marqueurs sont spécifiés dans le tableau 1.4.

Les opérations de codage/décodage sont résumées dans la figure1.1, puis détaillé dans les sections suivantes.

1.4.2 Transformation des couleurs

JPEG est capable de coder les couleurs sous n’importe quel format, toutefois les meilleurs taux de compression sont obtenus avec des codages de couleur de type luminance/chrominance car l’œil humain est assez sensible { la luminance (la luminosité) mais peu à la chrominance (la teinte) d'une image. Afin de pouvoir exploiter cette propriété,

(18)

Chapitre 1 : La norme de compression JPEG

10

l'algorithme convertit l'image d'origine depuis son modèle colorimétrique initial (en général RVB) vers le modèle de type chrominance/luminance YCbCr, voir figure 1.3. Dans ce modèle, Y est l'information de luminance, et Cb, Cr sont deux informations de chrominance.

Figure1.2 Perception de l’œil humain

La figure 1.2 montre que l'œil humain est parfait pour capter des différences de luminosité que pour capter les différences de couleurs. Séparer ces informations va donc nous permettre de leur appliquer une compression différente, destinée à la vision humaine. Enfin le but de l’opération est aussi décoreller les informations. En effet les signaux R, V et B auront une évolution similaire dans l’image, c'est-à-dire ils sont fortement corrélés. En revanche la luminance (Y) et les signaux de chrominance (Cb et Cr) n’ont pas beaucoup de rapport entre eux, qui veux dire sont décorellés. Ce phénomène de décorrélation va nous permettre d’obtenir un traitement plus efficace avec moins de répétitions dans l’image compressée car les canaux de chrominance contiennent beaucoup d'informations redondantes ainsi ils peuvent être facilement sous-échantillonnés sans sacrifier la qualité visuelle de l'image reconstruite.

(19)

Chapitre 1 : La norme de compression JPEG

11

La transformation de RVB vers YCbCr est basée sur l'expression mathématique suivante:

0.299000

0.587000

0.114000

0

0.168736

0.331264

0.500002

128

0.500000

0.418688

0.081312

128

b r

Y

R

C

G

C

B

  

   

  

 

   

  

   

  

   

  

   

(1.1)

La valeur Y = 0.299R + 0.587G + 0.114B physiologiquement, représente l'intensité d'une couleur RVB perçue par l'œil. La formule est comme un filtre pondéré avec des poids différents pour chaque composante spectrale car l'œil est plus sensible { la composante verte, il suit la composante rouge et la dernière est la composante bleue. Les valeurs Cb et Cr indiquent la quantité de bleu et la quantité de rouge dans cette couleur, respectivement. La transformation inverse de YCbCr en RVB est la suivante:

1.0

0.0

1.40210

1.0

0.34414

0.71414

128

1.0

1.77180

0.0

128

b r

R

Y

G

C

B

C

  

 

  

 

  

 

  

 

  

 

(1.2)

1.4.3 Sous-échantillonnage de la chrominance

Dans le processus de compression, le JPEG peut exploiter la faible sensibilité de l’œil humain aux composantes de chrominance pour réaliser un sous-échantillonnage (subsampling) de l’image. Le sous-échantillonnage est une technique de compression qui consiste en une diminution du nombre d’échantillons pour certaines composantes de l’image. Pour prendre un exemple, imaginons qu’on travaille sur une partition (MCU) de 2x 2 pixels.

Ces 4 pixels ont chacun une valeur de chaque composante. Le stockage en YCbCr occupe donc 4 x 3 = 12 emplacements. On ne sous-échantillonne jamais la composante de luminance de l’image. En effet, l’œil humain est extrêmement sensible { cette information, et une modification impacterait trop la qualité perçue de l’image. Cependant, comme on l’a dit, la chrominance contient moins d’information. On pourrait donc décider que sur ces 4 pixels, une seule valeur par composante de chrominance suffit. Il suffirait alors de 4 + 2 x 1 = 6 emplacements pour représenter toutes les composantes, ce qui réduit notablement la place occupée.

(20)

Chapitre 1 : La norme de compression JPEG

12 Figure1.4 Composantes Y, Cb et Cr avec et sans sous-échantillonnage, pour une

partition de 2x2Pixels

On caractérise le sous-échantillonnage par une notation de type L:H:V. Ces trois valeurs ont une signification qui permet de connaître le facteur d’échantillonnage comme il est illustré dans la figure 1.4.

Les modes d’échantillonnage les plus courants sont :

4:4:4 Pas de sous-échantillonnage. Le nombre de blocs est identique pour toutes les

composantes Y, Cb et Cr. La qualité de l’image est optimale mais le taux de compression est le plus faible ;

4:2:2 La moitié de la résolution horizontale de la chrominance est éliminée pour Cb et Cr

(figure1.4(b)). [ l’encodage, une seule valeur par chrominance Cb et Cr est utilisée pour deux pixels voisins d’une même ligne. Cette valeur est calculée sur la valeur RGB moyenne des deux pixels. La résolution complète est conservée verticalement. C’est un format très classique sur le Web et les caméras numériques ;

4:2:0 La moitié de la résolution horizontale et verticale de la chrominance est éliminée

pour Cb et Cr (figure 1.4(c)). Une seule valeur de chrominance Cb et Cr est donc utilisée pour quatre pixels. La qualité est visiblement moins bonne, mais sur un téléphone portable c’est bien suffisant !

1.4.4 Transformée en Cosinus Discrète par Bloc 8x8 (DCT)

Le passage par la DCT a été l'idée majeure pour la compression JPEG. En effet ce processus appartient à une classe d'opérations mathématiques, tout comme la Transformée de

(21)

Chapitre 1 : La norme de compression JPEG

13

Fourier. Elle permet un changement de domaine d'étude, tout en gardant exactement la même fonction étudiée.

Dans notre cas, on étudie une image, c'est à dire une fonction à 3 dimensions : X et Y, indiquant le pixel, et Z avec la valeur du pixel en ce point. Dans le cas d'une image couleur, il faut donc considérer indépendamment 3 fonctions, pour chacun des canaux RGB.

L'application de la DCT, ou d'une Transformée de Fourier fait passer l'information de l'image du domaine spatial en une représentation identique dans le domaine fréquentiel. Pourquoi ce changement de domaine est-il si intéressant? Justement parce qu'une image classique admet une grande continuité entre les valeurs des pixels. Les hautes fréquences étant réservées à des changements rapides d'intensité du pixel, ceux-ci sont en général minimes dans une image. Ainsi on parvient à représenter l'intégralité de l'information de l'image sur très peu de coefficients, correspondant à des fréquences plutôt basses.

La DCT s'applique à une matrice carrée 8x8. Le résultat fournit est représenté dans une matrice de même dimension. Les basses fréquences se trouvant en haut à gauche de la matrice, et les hautes fréquences en bas à droite.

La transformation matricielle DCT s'accompagne d'une méthode d'inversion pour pouvoir revenir dans le domaine spatial. Ainsi après avoir fait des modifications dans le domaine fréquentiel, éliminer des variations de l'image quasiment invisibles par l'œil humain, on retourne à une représentation sous forme de pixels.

la formule (1.3) pour calculer la DCT sur une matrice NxN [3] F(u,v)= 𝑐 𝑢 𝑐(𝑣)4 𝑁−1

𝑓(𝑥, 𝑦)

𝑗 =0 𝑁−1

𝑖=0

cos

2x+1 uπ16

cos

2y+1 vπ16 (1.3) c(e) = 1 2 si e = 0 1 si e ≠ 0

La formule (1.4) pour calculer la IDCT sur une matrice NxN [3] f(x,y)= 14 𝑁−1

𝑐 𝑢 𝑐(𝑣) 𝐹(𝑢, 𝑣)

𝑗 =0 𝑁−1

𝑖=0

cos

2x+1 uπ16

cos

2y+1 vπ16 (1.4) c(e) =

1

2 si e = 0

1 si e ≠ 0

(22)

Chapitre 1 : La norme de compression JPEG

14

1.4.5 Quantification et balayage en zig-zag

La quantification est l’étape de l'algorithme de compression JPEG au cours de laquelle se produit la majeure partie de la perte d'information (et donc de la qualité visuelle), mais c'est aussi celle qui permet de gagner le plus de place (contrairement à la DCT, qui ne compresse pas).

La DCT a retourné, pour chaque bloc, une matrice de dimension 8×8. La quantification consiste à diviser cette matrice par une autre, appelée matrice de quantification Q.

Le but ici est d’atténuer les hautes fréquences, c’est-à-dire celles auxquelles l’œil humain est très peu sensible. Ces fréquences ont des amplitudes faibles, et elles sont encore plus atténuées par la quantification ; certains coefficients sont même souvent ramenés à 0. Le calcul permettant la quantification est le suivant (1.5) :

( , )

( , )

( , )

q

F u v

F u v

Round

Q u v

(1.5)

Bien que la spécification JPEG n'impose aucune contrainte sur la matrice de quantification, l'organisme de standardisation ISO a développé un ensemble standard de valeurs de quantifications utilisables par les programmeurs de code JPEG. Les matrices de quantifications intéressantes sont celles permettant de choisir la perte de qualité acceptable (voir les deux tableaux 1.1). Habituellement, on prend pour matrice de quantification Q(u,v) qui est calculé en fonction de Q*(u,v) et un facteur de qualité varie entre 1 et 100. Fixé à 1, il fournit une compression maximale (donc une qualité minimale). Sa limite de 100, fournit une compression minimale (donc une qualité maximale).

(a) Matrice de quantification de Luminance (b) Matrice de quantification de chrominance

Tableau 1.1 Matrice de quantification Q*

17 18 24 47 99 99 99 99 18 21 26 66 99 99 99 99 24 26 56 99 99 99 99 99 47 66 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 14 17 22 29 51 87 80 62 18 22 37 56 68 109 103 77 24 35 55 64 81 104 113 92 49 64 78 87 103 121 120 101 72 92 95 98 112 100 103 99

(23)

Chapitre 1 : La norme de compression JPEG

15

Après avoir effectué la transformation et la quantification DCT, le bloc de valeurs 8x8 est parcouru en zig-zag comme le montre la figure 1.5 :

Figure1.5 Parcours en zig-zag

Le résultat obtenu est un vecteur avec 64 coefficients (0,1, ..., 63). La raison de ce déplacement en zigzag est que nous parcourons les 8x8 coefficients DCT dans l’ordre d’augmentation des fréquences spatiales. Nous obtenons donc un vecteur trié selon les critères de la fréquence spatiale. En conséquence, dans le vecteur quantifié, nous aurons beaucoup de zéros consécutifs.

1.4.6 Compression d’un bloc fréquentiel

Les blocs fréquentiels sont compressés sans perte dans le bitstream JPEG par l’utilisation de plusieurs techniques successives. Tout d’abord, les valeurs DC non nulles sont codées comme différence par rapport aux valeurs précédentes (voir section 1.4.6.1), puis les répétitions de 0 sont exploitées par un codage de type RLE (voir section 1.4.6.2), enfin, les symboles obtenus par l’application des deux codages précédents sont codés par un codage entropique de Huffman (section 1.4.6.3). Nous présentons dans cette section les trois codages.

1.4.6.1 Composante continue : DPCM, magnitude et arbre DC

Sauf en cas de changement brutal ou en cas de retour { la ligne, la composante DC d’un bloc (c’est { dire la composante continue, moyenne du bloc) a de grandes chances d’être proche de celle des blocs voisins dans la même composante. C’est pourquoi elle est codée comme la différence par rapport à celle du bloc précédent (dit prédicateur). Pour le premier bloc, on initialise le prédicateur { 0. Ce codage s’appelle DPCM (Differential Pulse Code Modulation)[3]. 0 1 5 6 14 15 27 28 2 4 7 13 16 26 29 42 3 8 12 17 25 30 41 43 9 11 18 24 31 40 44 53 10 19 23 32 39 45 52 54 20 22 33 38 46 51 55 60 21 34 37 47 50 56 59 61 35 36 48 49 57 58 62 63

(24)

Chapitre 1 : La norme de compression JPEG

16 Figure 1.6 Composante continue (DPCM)

Représentation par magnitude La norme permet d’encoder une différence comprise

entre -2047 et 2047. Si la distribution de ces valeurs était uniforme, on aurait recours à un codage sur 12 bits. Or les petites valeurs sont beaucoup plus probables que les grandes. C’est pourquoi la norme propose de classer les valeurs par ordre de magnitude, comme le montre le tableau ci-dessous.

Magnitude Valeurs possibles 0 1 2 3 . . . 11 0 -1,1 -3,-2,2,3 -7….,-4,4,……7 . . . -2047,….,-1024,1024,…..2047

Tableau 1.2 Classes de magnitude de la composante DC

Une valeur dans une classe de magnitude m donnée est retrouvées par son “indice”, codé sur m bits. Ces indices sont définis par ordre croissant au sein d’une ligne du tableau. Par exemple, on codera -3 avec la séquence de bits 00 (car c’est le premier élément de la ligne), -2 avec 01 et 7 avec 111. De la sorte, on n’a besoin que de 4 + m bits pour coder une valeur de magnitude m : 4 bits pour la classe de magnitude et m pour l’indice dans cette classe.

Encodage dans le flux de bits : Huffman Les classes de magnitude ne sont pas encodées

directement dans le flux binaire. Au contraire un arbre de Huffman DC est utilisé afin de minimiser la longueur (en nombre de bits) des valeurs les plus courantes. C’est donc le chemin (suite de bits) menant à la feuille portant la classe considérée qui est encodé.

(25)

Chapitre 1 : La norme de compression JPEG

17

Ainsi, le bitstream au niveau d’un début de bloc contient un symbole de Huffman { décoder donnant une classe de magnitude m, puis une séquence de m bits qui est l’indice dans cette classe.

Décodage Pour ce qui est du décodage, il faut évidemment faire l’inverse : décoder la

magnitude { partir des bits lus dans le flux et de l’arbre DC (qui a été préalablement lu dans le fichier JFIF). Ensuite, la valeur DC différentielle est retrouvée en lisant les bits d’indice dans la classe de magnitude.

1.4.6.2 codage RLE et Arbres AC

Les algorithmes de type Run Length Encoding ou RLE permettent de compresser sans perte en exploitant les répétitions successives de symboles. Par exemple, la séquence 000b0eeeeed pourrait être codée 30b05ed. Dans le cas du JPEG, le symbole qui revient souvent dans une image est le 0. L’utilisation du zigzag permet de ranger les coefficients des fréquences en créant de longues séquences de 0 à la fin, qui se prêtent parfaitement à une compression de type RLE.

Codage des coefficients AC Chacun des 63 coefficients AC non nul est codé par un symbole

sur un octet suivi d’un nombre variable de bits. Le symbole est composé de 4 bits de poids fort qui indiquent le nombre de coefficients zéro qui précédent le coefficient actuel et 4 bits de poids faibles qui codent la classe de magnitude du coefficient, de la même manière que pour la composante DC (voir la section 1.4.6.1). Il est à noter que les 4 bits de la partie basse peuvent prendre des valeurs entre 1 et 10 puisque le zéro n’a pas besoin d’être codé et que la norme prévoie des valeurs entre -1023 et 1023 uniquement. Ce codage permet de sauter au maximum 15 coefficients AC nuls. Pour aller plus loin, des symboles particuliers sont en plus utilisés :

— code ZRL : 0xF0 désigne un saut de 16 composantes nulles (et ne code pas de composante non nulle)

— code EOB : 0x00 (End Of Block) signale que toutes les composantes AC restantes du bloc sont nulles.

Ainsi, un saut de 21 composantes nulles serait codé par (0xF0, 0x5?) où le “ ?” est la classe de magnitude de la prochaine composante non nulle. La table ci-après récapitule les symboles RLE possibles.

(26)

Chapitre 1 : La norme de compression JPEG

18 Tableau 1.3 Signification des symboles RLE

Pour chaque coefficient non nul, le symbole RLE est ensuite suivi d’une séquence de bits correspondant { l’indice du coefficient dans sa classe de magnitude. Le nombre de bits est la magnitude du coefficient, comprise entre 1 et 10.

Encodage dans le flux Les symboles RLE sur un octet ne sont pas directement encodés

dans le flux, mais là encore un codage de Huffman est utilisé pour minimiser la taille des symboles les plus courants. On trouve donc finalement dans le flux (bitstream), après le codage de la composante DC, une alternance de symboles de Huffman (à décoder en symboles RLE) et d’indices de magnitude.

Décodage Pour ce qui est du décodage, il faut évidemment faire l’inverse et donc étendre

les données compressées par les algorithmes de Huffman et de RLE pour obtenir les données d’un bloc sous forme d’un vecteur de 64 entiers représentant des fréquences.

1.4.6.3 Le codage de Huffman

Les codes de Huffman sont appelés codes préfixés. C’est une technique de codage statistique à longueur variable.

Les codes de Huffman associent aux symboles les plus utilisés les codes les plus petits et aux symboles les moins utilisés les codes les plus longs. Si on prend comme exemple la langue française, avec comme symboles les lettres de l’alphabet, on coderait la lettre la plus utilisée (le ’e’) avec le code le plus court, alors que la lettre la moins utilisée (le ’w’ si on ne considère pas les accents) serait codée avec un code plus long. Notons qu’on travaille dans ce cas sur toute la langue française. Si on voulait être plus performant, on travaillerait avec un « dictionnaire » de Huffman propre à un texte.

Le JPEG exploite cette remarque, les codes de Huffman utilisés sont propres à chaque frame JPEG. Ainsi, il n’est pas nécessaire d’avoir des « séparateurs » entre les symboles même s’ils n’ont pas tous la même taille, ce qui est ingénieux. Par contre, le droit { l’erreur n’existe pas : si l’on perd un bit en route, tout le flux de données est perdu et l’on décodera n’importe quoi.

(27)

Chapitre 1 : La norme de compression JPEG

19

Un code de Huffman peut se représenter en utilisant un arbre binaire. Les feuilles de l’arbre représentent les symboles et { chaque nœud correspond un bit du code : { gauche, le ’0’, { droite, le ’1’.

Le petit exemple suivant illustre ce principe :

Figure 1.7 Représentation d’un arbre binaire de Huffman

Le décodage du bitstream 0001110100001 produit la suite de symboles decade. Il aurait fallut 3 bits par symbole pour distinguer 5 symboles pour un code de taille fixe (tous les codes sont alors équivalents), et donc la suite de 6 symboles aurait requis 18 bits, alors que 13 seulement sont nécessaires ici.

Cette représentation en arbre présente plusieurs avantages non négligeables, en particulier pour la recherche d’un symbole associé { un code. On remarquera que les feuilles de l’arbre représentent un code de longueur « la profondeur de la feuille ». Cette caractéristique est utilisée pour le stockage de l’arbre dans le fichier. Un autre avantage réside dans la recherche facilitée du symbole associé { un code : on parcourt l’arbre en prenant le sous arbre de gauche ou de droite en fonction du bit lu, et dès qu’on arrive { une feuille terminale, le symbole en découle immédiatement. Ce décodage n’est possible que parce que les codes de Huffman sont préfixés.

Dans le cas du JPEG, les tables de codage sont fournies avec l’image. On notera que la norme requiert l’utilisation de plusieurs arbres pour compresser plus efficacement les différentes composantes de l’image. Ainsi, en mode baseline, le décodeur supporte quatre tables :

— deux tables pour la luminance Y, une pour les composantes DC et une pour les composantes AC;

(28)

Chapitre 1 : La norme de compression JPEG

20

— deux tables communes aux deux chrominances Cb et Cr, une DC et une AC.

Les différentes tables sont caractérisées par un indice et par leur type (AC ou DC). Lors de la définition des tables (marqueur DHT) dans le fichier JPEG, l’indice et le type sont donnés. Lorsque l’on décode l’image encodée, la correspondance indice/composante (Y,Cb,Cr) est donnée au début, et permet ainsi le décodage.

Le format JPEG stocke les tables de Huffman d’une manière un peu particulière, pour gagner de la place. Plutôt que de donner un tableau représentant les associations codes/valeurs de l’arbre pour l’image, les informations sont fournies en deux temps. D’abord, on donne le nombre de codes de chaque longueur comprise entre 1 et 16 bits. Ensuite, on donne les valeurs triées dans l’ordre des codes. Pour reconstruire la table ainsi stockée, on fonctionne donc profondeur par profondeur. Ainsi, on sait qu’il y a np codes de

longueur p; p = 1,…... 16. On va donc remplir l’arbre, { la profondeur 1, de gauche { droite, avec les n1 valeurs. On remplit ensuite la profondeur 2 de la même manière, toujours de

gauche à droite, et ainsi de suite pour chaque profondeur.

Pour illustrer, reprenons l’exemple précédent. On aurait la représentation suivante pour commencer:

Ensuite, la seule information que l’on aurait serait l’ordre des valeurs : < d, e, a, c, b> soit au final la séquence suivante, qui représente complètement l’arbre : < 0 3 2 d e a c b> Dans le cas du JPEG, les table de Huffman permettent de coder (et décoder) des symboles pour reconstruire les composantes DC et les coefficients AC d’un bloc fréquentiel.

1.5 Syntaxe et structure

JPEG peut désigner soit l'encodage d'une image, soit le format de fichier. En effet, différents formats de fichiers (TIFF, PDF, JPG, ...) peuvent contenir une image encodée en JPEG. On parlera dans ce paragraphe du format de fichier. Un fichier JPEG est constitué d'une série de marqueurs et de données. Les marqueurs permettent d’identifier ce que représentent les données qui les suivent. Cette identification permet ainsi, en se référant à la norme, de

(29)

Chapitre 1 : La norme de compression JPEG

21

connaître la sémantique des données, et leur signification (i.e. les actions à effectuer pour les traiter).

Deux grands types de sections peuvent être distingués :

— Définition de l’environnement : ces sections contiennent des données permettant d’initialiser le décodage du flux. La plupart des informations du JPEG étant dépendantes de l’image, c’est une étape nécessaire. Les informations { récupérer concernent, par exemple, la taille de l’image, ou les tables de Huffman utilisées. Elles peuvent nécessiter un traitement particulier avant d’être utilisable ;

— Représentation de l’image : ce sont les données brutes qui contiennent l’image encodée. Une liste exhaustive des marqueurs est définie dans la norme JFIF. Les principaux vous sont donnés dans la table 1.4, avec la représentation des données utilisées et la liste des actions à effectuer.

(30)

Chapitre 1 : La norme de compression JPEG

22

Abréviation Valeur Nom Commentaires

SOI 0xFFD8 Start Of Image Premiers octets du fichier

SOF0 0xFFC0 Start Of Frame (Baseline DCT)

Indique une image encodée par "baseline DCT", et spécifie la largeur, la hauteur, le nombre de composantes et le sous-échantillonnage des composantes (par exemple 4:2:0).

SOF2 0xFFC2 Start Of Frame (Progressive DCT)

Indique une image encodée par "progressive DCT", et spécifie la largeur, la hauteur, le nombre de composantes et le sous-échantillonnage des composantes (par exemple 4:2:0).

DHT 0xFFC4 Define Huffman Table(s) Spécifie une ou plusieurs tables d'Huffman.

DQT 0xFFDB Define Quantization Table(s) Spécifie une ou plusieurs tables de quantification.

DRI 0xFFDD Define Restart Interval

Spécifie l'intervalle entre les marqueurs RSTn, en macroblocs. Ce marqueur est suivi de deux octets indiquant sa taille de sorte qu'il puisse être traité comme n'importe quel segment de taille variable.

SOS 0xFFDA Start Of Scan

Commence un parcours de haut en bas de l'image. Dans les encodages baseline DCT, il n'y a généralement qu'un seul parcours. Les images progressive DCT contiennent habituellement plusieurs parcours. Ce marqueur spécifie quelle tranche de données il contient et il est immédiatement suivi par des données codées entropiquement.

APPn 0xFFEn Application-specific

Ce marqueur permet d'inclure des informations qu'un programme de visualisation peut ignorer tout en restant capable de décoder l'image. Par exemple, un fichier JPEG Exif utilise un marqueur APP1 pour enregistrer des méta données, organisées selon une structure proche du formatage TIFF.

COM 0xFFFE Commentaire Contient un commentaire textuel.

EOI 0xFFD9 End Of Image Derniers octets du fichier

(31)

Chapitre 1 : La norme de compression JPEG

23

1.6 Conclusion

Le besoin d'images compressées de bonne qualité est en constante augmentation. La compression JPEG, à son époque avait fourni des taux record, qui ont permis par exemple le développement d'internet tel que nous le connaissons actuellement. Cependant certaines données importantes doivent être protégées pendant leur transmission ce qui n’est pas assuré par la méthode JPEG, c’est pourquoi le besoin de compression et de chiffrement, s’accroît et les chercheurs dans le domaine de la sécurité de l’information accordent une attention croissante à la combinaison de compression et chiffrement. Jusqu'à présent, un grand nombre d'articles portant sur la compression d'images et le cryptage d'images en même temps ont été publiés.

(32)

24

Chapitre 2 :

Cryptographie

et

systèmes

dynamiques

Contenu 2.1 Introduction 2.2 La cryptologie

2.3 Les Systèmes dynamiques : Automates cellulaires et théorie du chaos

2.4 Mesures d'évaluation statistiques pour évaluation de la sécurité et de la compression 2.5 Conclusion

(33)

Chapitre 2 : Cryptographie et systèmes dynamiques

25

2.1 Introduction

La cryptographie est un mélange de concepts mathématiques complexes et d’astuce, reconnue comme la technique suprême de préservation des données contre la fraude passive et active [4]. Néanmoins, le comportement erratique et complexe des systèmes dynamiques peut être obtenu à partir de modèles mathématiques simples. Cette observation importante a fait l’objet d’une attention considérable de la part de chercheurs de diverses branches de la science au cours de décennies. Pour étudier ces caractéristiques souhaitables d'un système dynamique, il faut le relier à des concepts similaires dans une branche scientifique voisine, cette branche voisine de la science étant la cryptographie [5]. Le pont entre ces disciplines scientifiques dissemblables, ici les systèmes dynamiques et la cryptographie, consiste à exploiter les systèmes dynamiques comme base pour concevoir de nouveaux moyens cryptographiques. Cette thèse porte sur deux types de systèmes dynamiques: au début, les automates cellulaires (CA), en tant que systèmes dynamiques, sont utilisés pour concevoir des systèmes de cryptage sécurisés. Dans la deuxième partie, le chaos, considéré comme un autre type de système dynamique, qui est combiné avec les automates cellulaires dans cette thèse pour augmenter le niveau de sécurité.

2.2 La Cryptologie

/ ou Cryptologie

La cryptologie est un art ancien et une science nouvelle : un art ancien car les Spartiates l'utilisaient déjà (la scytale) ; une science nouvelle parce que ce n'est un thème de recherche scientifique académique, c'est-à-dire universitaire, que depuis les années 1970. La cryptologie est une science qui étudie les cryptosystèmes, c’est-à-dire la transformation de l’information en une forme dépourvue de sens, de sorte qu’elle ne peut être accessible/distinguée que par les parties communicantes. Cette science comprend deux disciplines connexes:

1. La conception d'outils et de cadres qui conduisent à la dissimulation d'informations. 2. Évaluation de la méthode cryptographique construite.

Ces deux étapes sont assez différentes mais complémentaires en tant que branches de la cryptologie, à savoir: la cryptographie et la cryptanalyse [6].

2.2.1 Cryptoghraphie : concepts essentiels

Le terme cryptographie provient des deux mots grecs anciens « Kruptos » qui signifie « cacher » et « graphein » qui signifie « écrire ». Le Petit Larousse donne la définition

(34)

Chapitre 2 : Cryptographie et systèmes dynamiques

26

suivante: « Ensemble des techniques de chiffrement qui assurent l'inviolabilité de textes et, en informatique, de données. » [7] ce qui signifie, la cryptographie concerne la conversion des données de sa forme originale ou en texte clair à une forme illisible, i.e texte chiffré ainsi que la conversion inverse.

La transformation du texte en clair en texte chiffré est appelée chiffrement, tandis que l'opération inverse, la transformation du texte chiffré en texte en clair est appelée déchiffrement. Le plus ancien emploi de la cryptographie est tracé avec le hiéroglyphique égyptien, dans lequel un code complet, à savoir le hiéroglyphe est échangé contre un autre code uniquement lisible par les parties légitimes, cependant, dans ce type de cryptage le code utilisé doit être modifié dans chaque communication émetteur/récepteur, ce qui est peu pratique.

Au fil du temps, le système de chiffrement a été développé pour devenir plus complet et reposait sur une procédure de transformation associée à un paramètre externe, à savoir la clé. Ainsi, les parties communicantes n'ont désormais plus besoin de connaître préalablement le code conforme au texte chiffré, mais seulement la procédure de transformation et la clé. Nous étendons notre discours pour discuter de manière plus formelle du concept, au moyen de notations mathématiques [8], soit:

- M est l’ensemble fini appelé espace des textes en clair ; - C est l’ensemble fini appelé espace des textes chiffrés ; - K est l’ensemble fini appelé espace des clés ;

- E et D définissent respectivement les ensembles finis des fonctions de chiffrement et de déchiffrement ;

Définition 1 (Fonction de chiffrement). Si ∀k ∈ K, il y a une fonction Ek ∈ E : M ↦ C alors Ek

est appelée fonction de chiffrement et k est la clé de chiffrement.

Définition 2 (Fonction de déchiffrement). Si ∀k ′ ∈ K, il y a une fonction Dk′ ∈ D : C ↦ M alors

Dk′ est appelée fonction de déchiffrement et k ′ est la clé de déchiffrement.

Définition 3 (Système cryptographique). Un système cryptographique est le quintuplet S

tel que S = {M, C, K, E, D}.

Définition 4 (Algorithme cryptographique). Un algorithme cryptographique est l’ensemble

des fonctions de chiffrement {Ek : k ∈ K} et de l’ensemble des fonctions de déchiffrement

associées {Dk’ : k’ ∈ K} tels que ∀k ∈ K il y a une clef unique k’∈ K telle que Dk’ = Ek−1 .

(35)

Chapitre 2 : Cryptographie et systèmes dynamiques

27

2.2.2 Objectif de la cryptographie

Depuis son apparition, la cryptographie n’a cessé d’évoluer. Initialement dévolue { la protection des messages échangés, le panel de ses applications s’est élargi pour couvrir aujourd’hui un seul enjeu : la sécurité des systèmes d’information. Ainsi, la cryptographie moderne intervient dans tous les grands domaines de la sécurité de l’information que ce soit au travers de son enjeu premier : la confidentialité mais aussi au travers des processus d’authentification, de non-répudiation, d’intégrité des donnés [9].

- La confidentialité : Le texte chiffré ne doit être lisible que par les destinataires légitimes. Il ne doit pas pouvoir être lu par un intrus.

- L'authentification : Le destinataire d'un message doit pouvoir s'assurer de son origine. Un intrus ne doit pas être capable de se faire passer pour quelqu'un d'autre.

- L'intégrité : Le destinataire d'un message doit pouvoir vérifier que celui-ci n'a pas été modifié en chemin. Un intrus ne doit pas être capable de faire passer un faux message pour légitime.

- La non répudiation : Un expéditeur ne doit pas pouvoir, par la suite, nier à tort avoir envoyé un message.

2.2.3 La sécurité parfaite

Un système de chiffrement est dit inconditionnellement sûr si un attaquant est incapable de le casser même en disposant d’une capacité infinie de calcul. Claude Shannon a prouvé l’existence de tel système.

2.2.3.1 Sécurité au sens de Shannon

Claude Shannon[10] introduit la notion de sécurité parfaite ou encore de systèmes cryptographiquement sûrs. Les conditions requises pour avoir un système cryptographiquement sûrs au sens de Shannon sont trop fortes pour s’appliquer en général dans des applications concrètes à usage commercial.

Théorème (Shannon)

Soit un procédé de chiffrement tel que les nombres d’éléments dans P, dans C et dans K soient tous égaux à un certain entier n > 0. Ce système assure une confidentialité parfaite si, et seulement si, chaque clé est utilisée avec une probabilité 𝑛1 , et pour chaque message clair x ∈ P et chaque message chiffré y ∈ C, il existe une unique clé k ∈ K telle que EK(x) =

(36)

Chapitre 2 : Cryptographie et systèmes dynamiques

28

2.2.4 Chiffrement de Vernam

Une réalisation célèbre de la confidentialité parfaite est le chiffrement de Vernam (voir figure 2.1), également connu sous les noms masque jetable ou one-time pad. Il fut inventé par Gilbert Vernam en 1917 pour chiffrer et déchiffrer des messages télégraphiques. Il est intéressant de noter que le chiffrement de Vernam fut admis " incassable " pendant des années avant que Shannon ne le prouve trente ans plus tard grâce à la notion de confidentialité parfaite.

Figure 2.1 Chiffrement de Vernam

Soit un entier n ≥ 1 fixé. Soient P = C = K = Zn2, c’est-à-dire que les messages clairs, les messages chiffrés et les clés sont des blocs (des vecteurs) de n bits (puisque Z2 = {0, 1}).

Pour K = (K1,K2, ....,Kn) ∈ Zn2 (donc Ki est un bit) et x = (x1, x2, ...., xn) (xi est un bit), on définit :

EK(x) = (x1 ⊕ K1, x2 ⊕ K2, ..., xn ⊕ Kn) (2.1)

où ⊕ est l’opération de ou-exclusif (ou XOR) donnée par la table suivante :

Table 2.1 L’opération XOR

Le ou-exclusif n’est en fait rien d’autre que l’addition modulo deux. Le déchiffrement est identique au chiffrement. Si y = (y1, y2, ...., yn), alors :

DK(y) = (y1 ⊕ K1, y2 ⊕ K2, ..., yn ⊕ Kn) (2.2)

En utilisant le théorème de Shannon, on voit facilement que le chiffrement de Vernam assure une confidentialité parfaite. Néanmoins ce procédé est vulnérable aux attaques à texte clair connu. En effet, si on connaît le texte chiffré y = (y1, y2, ...., yn) et le texte en clair

correspondant x = (x1, x2, ...., xn), alors on retrouve la clé K utilisée en calculant :

(x1 ⊕ y1, ...., xn ⊕ yn) = K (2.3)

Figure

Figure 1.3 Transformation RGB vers YCrCb
Tableau 1.2   Classes de magnitude de la composante DC
Figure 1.7 Représentation d’un arbre binaire de Huffman
Table 1.4  Marqueurs JPEG
+7

Références

Documents relatifs

In this work we evaluate the fractal coder in spatial and wavelet domain, and we investigate its ability to compress radiographic images of weld defects. Keywords : Fractal

Toutefois, on remarque que les résultats obtenus lors, de l’application des codeurs SPIHT et MSPIHT avec ou sans codage arithmétique, que le nombre de bits

UNIVERSITE MOHAMED KHEIDER - BISKRA FACULTE DES SCIENCES ET DE LA TECHNOLOGIE. DEPARTEMENT DE

.. ˬΓέϛγΑˬέοϳΧΩϣΣ˰ϣΔόϣΎΟˬϱέϭΗγΩϥϭϧΎϗιλΧΗ ϮϬϭϯ – ϮϬϭϰ ˬ ι Ϯϰ.. ΔϳϠϛ ˬΔϧϳρϧγϗϱέϭΗϧϣΔόϣΎΟˬΔϳγΎϳγϟ΍ϡϭϠόϟ΍ϭϕϭϘΣϟ΍ ϮϬϭϬ – ϮϬϭϭ ιˬ ϴϬ..

Until recently, gene by environment (GxE) interaction studies were performed by means of candidate ap- proaches including only a small number of genes. Gene selection in

(2009) [25], as part of a randomised controlled trial (RCT) in six European sites, the direct mental health care cost for 422 patients with schizophrenia was analysed according to

Poincaré em 1905, próximas pelos seus resultados do trabalho de Einstein, mas diferentes por varias implicações fundamentais: em particular as teorias de Lorentz e de

The design of new encoding techniques is no longer aimed solely at improving performances in terms of compression rates. The development of digital image transmission solutions