Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
cryptologie

cryptographie & cryptanalyse

Publié le 1 Novembre 2014 par Levy

1.Les attaques

Il existe deux grands types d’attaques sur les images watermarkées:

  • Les attaques liées à l’image (ou au signal de watermark), dite "aveugle", dont le but est clairement une suppression simple d’une potentielle donnée masqué dans l’image, en ignorant son contenu. Cela se résume à des transformations plus ou moins violentes. Ces transformations ont pour but de rendre illisible le marquage. Il est intéressant de remarquer néanmoins que ces attaques ne sont pas forcément volontaires. En effet, sans le savoir l’image peut être dégradée suffisamment pour que le tatouage soit effacé. Un algorithme de marquage robuste est sensé résister de manière efficace à ces types de transformation, ou du moins tant que l’image reste utilisable
  • Les attaques plus "malicieuses" dont le but est de retrouver le marquage. Pour cela il suffit de récupérer par différent moyen la "clef" utilisée au marquage de l’image originale. Nous pourrons alors modifier comme bon nous semble modifier le tatouage de cette image, le lire, le supprimer...
1.1.1. Les attaques basiques involontaires

Commençons par une liste, non exhaustive, des types de transformations pouvant potentiellement altérer le tatouage :

Le fait simplement d’inverser horizontalement une image est très souvent fatal a une grande partie de watermark. Cette transformation peux sembler au premier abord bien trop brutale pour conserver le sens d’une image, mais il peut passer inaperçu pour un paysage, ou même pour un film ou aucune scène d’écriture n’intervient (sous-titrage à proscrire).

Ces transformations concernent surtout la mise en page de diverses images scannées. Cela peut être une simple rotation de quelque degré, ou bien un découpage brutal d’une partie de l’image. Ces types de recadrements peuvent être des attaques très efficaces.

Le fait d’étirer horizontalement ou verticalement une image. Souvent utilisé dans la mise en page également.

Il s’agit ici d’utiliser un découpage d’une image d’une façon beaucoup plus violente et qui se prête assez bien aux pages HTML. Il suffit de découper l’image en autant de morceaux que l’on désire (plus il y a de morceaux plus l’attaque à des chances d’aboutir), puis de recoller cette image au moment de l’affichage en créant par exemple en HTML un tableau dont chacune des cellules contiendra un morceau de l’image. Cette attaque est très peu applicable en pratique, et heureusement car elle est d’une rare efficacité si l’on se donne les moyens de bien découper l’image (figure 3.4).

Ces transformations modifient essentiellement les coefficients de la DCT.

Le bruit est une altération de l’image : toute l’information pertinente dans l’image n’est pas simplement accessible.

Des exemples de bruit artificiel peuvent être :

  • le bruit gaussien qui consiste à un ajout successif de valeurs générées aléatoirement à chaque pixel d’une image.
  • ou encore le bruit "sel et poivre" qui transforme aléatoirement des pixels de l’image en pixel noir ou blanc.

Le bruitage d’une image ayant utilisation particulièrement limité, voyons à présent les différents type de filtre servant justement à récupérer une certaine compréhension de l’image en y filtrant les bruits.

Faisant partie de la catégorie des filtrages linéaires. On utilise ici la transformée de Fourier pour travailler dans l’espace des fréquences de l’image et dans lequel on ne laisse alors passer que les basses fréquences.

En fait, il ne s’agit ni plus ni moins que d’un produit de convolution du signal avec une fonction passe bas.

Toujours dans les filtrages linéaires, et souvent appeler "Sharpen" dû au fait qu’il a pour but d’accentuer des contours. Il s’agit simplement de l’inverse du filtre passe-bas, car il ne conserve que les hautes fréquences. Cette attaque est certainement la moins efficace des transformations car elle conserve le bruit, et que c’est souvent à ce niveau-là que se situe le tatouage.

Ce filtre, non linéaire, remplace la valeur d’un pixel par la médiane des valeurs de ces voisins. Il est plus robuste que le précèdent pour différents types de bruits artificiels, donc plus efficaces en tant qu’attaque.

Les compressions à pertes sont souvent une succession des différentes transformations vues précédemment, ce qui en font des attaques involontaires et souvent très efficace.

Un exemple peut être la compression Jpeg.

L’avantage de cette méthode réside dans les taux de compression important que l’on peut obtenir, mais son désavantage se situe lui dans le fait qu’il s’agit d’une compression destructive.

En effet plus l’on compresse l’image plus des défauts apparaissent.

Voyons en détail les différentes étapes de cette compression :

  • On découpe d’abord l’image en blocs carrés de 8 pixels sur 8 pixels.
  • On effectue ensuite une Transformée de Fourier (en pratique, une transformée DCT) en 2 dimensions du bloc
  • Et pour finir, on applique un filtre passe bas et c’est là que l’on choisit le taux de compression (en pratique, avec des matrice de quantification).

Plus celui-ci va être élevé, plus l’on va supprimer une gamme de fréquences importantes et plus l’image va être dégradée.

Ce type d’attaque s’applique aussi à tout ce qui est conversion de format, par exemple du jpeg vers du gif.

1.1.2. Les attaques volontaires

Plusieurs outils commerciaux permettent de "lessiver" le marquage d’une image en essayant d’altérer au minimum l’image originale ; Ces programmes sont appelés "crackers".

Ceux-ci perturbent l’image de telle sorte que, même si la marque reste présente dans l’image tatouée, pour la plupart des algorithmes de marquage, celle-ci est difficile, voire très difficile à extraire, sans recourir à l’image originale, afin de se recaler.

Ces perturbations sont souvent des transformations géométriques (voir section précédente) de manière aléatoire. Parmi les outils actuellement disponibles qui réalisent une telle perturbation, les plus référencer sont actuellement Unzign et surtout Stirmark. UnZign modifie sensiblement la taille de l’image et Stirmark crée des déformations locales et simule un processus d’impression suivie d’une digitalisation de l’image à l’aide d’un scanner.

Plusieurs itérations mettent en évidence les modifications du format de l’image de cet algorithme.

Un exemple avec stirmark à présent, sur la figure , met clairement en évidence les modifications géométriques apportées par ce programme.

1.1.3. Les attaques de nature cryptologique

Ce type d’attaques est beaucoup plus intéressant, car il demande des connaissances en traitement du signal ainsi qu’une analyse sérieuse du marquage. Les attaques malicieuses sont différentes des attaques aveugles car le pirate va s’attacher à trouver la faiblesse du système qui utilise le watermark. Selon cette faiblesse, il ciblera son attaque.

Par bien des aspects, cela se rapproche beaucoup de la cryptanalyse (l’art de briser les systèmes de chiffrement en cryptologie).

Une des utilisations du watermarking peut être la protection des droits d’auteur ("copyright"). Par exemple, le document va être tatoué avec en paramètres le nom de l’auteur, l’identification du contenu, un secret etc. Seul l’auteur connaît ces paramètres. Cette version marquée sera mise à disposition sur Internet. La version originale ne sera pas divulguée. L’auteur est le seul à pouvoir détecter le watermark pour prouver que ce document lui appartient.

Dans ce cas précis, le pirate va chercher à semer le trouble sur l’origine de l’image. En effet, il ne sert à rien d’ajouter une autre marque au contenu divulgué sur Internet. L’auteur a toujours à sa disposition la version originale. Le pirate essaie plutôt de recréer une image originale (c’est à dire sans marquage) en soustrayant un faux watermark. Ainsi, il existe deux personnes prétendant avoir la copie originale du contenu divulgué sur Internet. Il est impossible de confondre l’usurpateur.

Ici, tous les contenus (films, fichiers musicaux) vont être tatoués avec la même clef. Sachant cela, le pirate va chercher à estimer cette clef, ce qui lui permettra de laver tous les contenus.

Voici une description très simplifiée de « l’average attack ». Le pirate veut trouver la clef utilisée pour marquer un film. Pour simplifier, supposons que la clef soit aussi le signal de watermark: W. Pour tout contenu original Ik , la version tatouée est obtenue ainsi :

Le pirate recherche W. Il a accès à toutes les images tatouées , mais il ne connait pas les images originales . Or, sans entrer dans les détails, su un grand nombre d’image, la moyenne des images non tatouées tend vers un gris uniforme de valeur G. On peut écrire :

Ainsi, il pourra estimer la clef et la soustraire à chaque image pour pirater les contenus. Une implémentation de cette attaque à été réalisée en tenant compte d’hypothèses plus réalistes. L’image originale est estimée par un filtrage passe-bas de l’image tatouée :

Le watermark est estimé par une simple difference :

Ceci est fait sur un grand nombre d’images tatouées. Les différents signaux sont moyennés dans un buffer pour améliorer la qualité de l’estimation.

1.1.4. Les Contre-attaques

Nous avons vu dans les paragraphes précédents que l’algorithme d’extraction est généralement le duale de l’algorithme d’insertion. Autrement dit, les opérations réalisées lors de l’extraction dérivent directement de celles définies lors de l’insertion du tatouage.

Cependant, face à certaines attaques qui laissent la marque dans l’image, mais empêchent le détecteur de l’extraire correctement, des publications récentes proposent d’accroître la robustesse des tatouages en rajoutant de nouvelles étapes à l’extraction, sans remettre en cause le schéma utilisé à l’insertion.

De plus, le problème difficile des attaques géométriques nous amène aussi a suggère que la détection, plutôt que le marquage, est le problème principal du watermarking.

Pour ce faire, plusieurs solutions sont proposées. Celles-ci servent à augmenter la robustesse du watermark contre les attaques "aveugle"(en particulier tout ce qui est rotation ou translation). L’idée basique consiste à utiliser des "Codes correcteurs" (ou CC) a la place d’une simple duplication-répétition des bits qui va en quelque sorte "préformâtes" le watermark, par exemple en changeant le domaine (spatial ou fréquentiel).

Connue aussi sous le nom de FMT (FourierMellin Transform). Celle-ci permet une robustesse face à n’importe quelle transformation à base de rotation ou de translation.

Tout d’abord, faisons la différence entre les 2 transformée, Mellin et Fourier :

  • Transformée de Fourier : Cette transformée s’applique sur le principe suivant˘a: toutes les fonctions sont décomposables en une somme de sinusoïdes à des fréquences différentes. Ainsi, lorsque l’on représente une fonction dans un repère Amplitude/Temps, la transformation de Fourier permet de la voir dans un repère Amplitude/Fréquence. On voit donc les composantes en fréquence d’un signal. La transformée étant une sinusoïde, une translation de l’image originale n’a aucune influence dessus.
  • Transformée de Mellin : Cette transformée va en fait en quelque sorte analyser d’une part notre image en tant que repère orthogonal, ayant l’extrémité inférieure gauche comme origine. Elle fera correspondre ensuite à chaque pixel de l image un vecteur le pointant à partir de cette origine, caractérise par une norme, et un angle. Ce vecteur est alors stocker sur un 2eme repère correspondant à l’image de la transformée, dont l’axe X représente la norme de ce vecteur, et l’axe Y son angle. Par conséquent le fait d’appliquer une rotation a notre image originale ne changera pas l’abscisse de l’image de la transformé, mais seulement l’ordonnée.

Une application de cette transformée à celle de Fourier nous permet de garder une ordonnée fixe.Par conséquent, une application successive de ces 2 transformée renforce la robustesse aux attaques géométriques.

Cette méthode permet surtout de limiter les différences entre l’image marquée, et l’image originale. La solution proposée par Davoine & al (figure 3.14) a été inspiré par les travaux précédents effectués sur la vidéo en utilisant les pièces triangulaires pour compenser le mouvement.

L’idée basique est de découper l’image originale en un ensemble de pièces triangulaire.

Cette maille servira alors de maille de référence et sera gardée dans la mémoire pour une étape de prétraitement de récupération du watermark. Un découpage identique sera alors effectué sur l’image marquée. En utilisant des procédures de compensation, ce maillage modifie sera alors compenser avec le précédent, ce qui limitera les différences dans les possibles transformations affines dû au marquage.

Il suffit par la suite de récompenser l’image marquée avec son maillage original pour retrouver la donnée masquée. Cette contre-attaque nécessite néanmoins l’image originale pour retrouver l’information.

Afin de préserver la possibilité de retrouver l’information sans avoir recours à l’image originale, une alternative, proposée par Kutter, consiste à inclure dans certaines parties du watermark des valeurs connue permettant une synchronisation spatiale

Cette approche a néanmoins le désavantage de diminuer le ratio avec l’information caché, dans le sens où elle utilise une partie de la place possible pour son propre décryptage.

De plus, il est certain que n’importe quelle transformation affine peut être compensée en testant toute les potentielles transformations inverses, et en sélectionnant le meilleur résultat, cette approche est très lourde lorsque l’on considère une image complète.

Donc à la place d’utiliser des points précis qui seront comparés avant et apprête le marquage (voir "Non-Blind"), Kutter a introduit l’idée de système qui inclue dans le watermark a plusieurs endroits ces points précise.

Cette idée est appelée aussi «Self-Resynchronisation". Le marquage devient alors sa propre référence, rendant la synchronisation possible en n’ayant recours à aucune autre information originale.

Commenter cet article