• Aucun résultat trouvé

Dans cette section, nous présentons notre nouvel espace d’insertion et notre nouvelle approche pour l’insertion.

2.3.1 L’espace d’insertion

Le travail récent de Bas et Doërr [Bas et al. 08a] sur la sécurité de l’approche DPTC originale [Miller et al. 04] montre que dans le cadre de Kerckhoffs [Kerckhoffs 83], c’est-à-dire lorsque les algorithmes d’insertion et d’extraction sont publics et donc à la disposition d’attaquants, le livre du code C peut-être retrouvé3 en observant un grand nombre d’images tatouées (tatouées

avec l’utilisation de la même clef secrète). Ce résultat est obtenu sur une version simplifiée de l’algorithme DPTC4, mais montre néanmoins l’existence d’une certaine faiblesse de sécurité dans

l’algorithme. L’espace privé que nous utiliserons dans notre schéma permet de cacher la structure du treillis et devrait rendre plus difficile une attaque à la sécurité du type de celle proposée par Bas et Doërr [Bas et al. 08a]. En outre, il est certainement très difficile d’estimer les projections secrètes de la même manière que dans [Bas et al. 09] car le nombre de mots-de-code est trop grand (pour un treillis composé de 128 états, de 128 arcs par état, et d’un payload5de 1024 bits,

cela fait plus de 10387mots-de-code).

La figure 2.2 illustre l’espace d’insertion de notre proposition Rotation-Based Dirty Trellis Codes (RB-DPTC). Notre nouvel espace d’insertion est obtenu tout d’abord par une transforma- tion ondelettes de l’image, puis par une projection du signal hôtex de dimension Nwlt (x est la

concaténation des coefficients des sous-bandes, exceptés les coefficients de la sous-bande LL) sur Nsecporteuses (notéesui avec i ∈ [1, Nsec]). La projection est juste un produit scalaire. Remar-

quons également que la complexité de la projection peut facilement être réduite en une complexité 2. Sur un PC à 3Ghz, en fonction du seuil de robustesse, l’insertion peut prendre de 30 min à 90 min sur une image 256× 256.

3. Plus exactement, ce sont les coefficients attachés aux arcs du treillis qui peuvent être assez bien estimés. 4. il n’y a pas de ré-ordonnancement pseudo-aléatoire des coefficients DCTs.

linéaire avec une approche de Space Division Multiplexing [Chaumont 09a]. Le vecteur obtenu vxde dimension Nsec peut alors être utilisé pour le codage informé et l’insertion informée.

FIGURE 2.2 – L’espace d’insertion pour notre schéma Rotation Based Dirty Paper Trellis Code (RB-DPTC).

Cet espace d’insertion est au moins aussi sûr que l’original car il permet de disperser le signal de tatouage sur tout le domaine fréquentiel (il n’y a donc pas de super robustesse [Craver et al. 07]). De plus, la projection sur les Nsecporteuses donne à l’espace d’insertion un aspect Gaussien connu

pour ses bonnes capacités de canal [Costa 83]. Finalement, le domaine ondelettes a de bonnes pro- priétés psycho-visuelles et génère des effets moins gênants (ou du moins, moins tranchés) que les effets de bloc du schéma DPTC original [Miller et al. 04].

2.3.2 L’étape d’insertion informée

Le codage informé que nous utilisons est le même que celui du DPTC original, mais il est réalisé à partir du vecteur hôte vx (c’est-à-dire à partir de l’espace secret). Le codage-informé

permet d’obtenir le mot de code c∗. Pour accélérer l’insertion et conserver un bon compromis

robustesse-distorsion, nous proposons une solution non optimale, mais meilleure que l’approche de Lin et al. [Lin et al. 05].

Rappelons qu’au décodage, le mot de code le plus corrélé ˜c∗ est obtenu en exécutant l’algo-

rithme de Viterbi sur le treillis « complet ». Ce mot de code ˜c∗ appartient au livre du code C et

maximise la corrélation avec le vecteur tatoué-attaqué ˜vy:

˜ c∗ = argci max ∀ci∈C( ˜vy.c i) = argci max ∀ci∈C(|| ˜vy||.||c i||.cosθ i),

avec θi l’angle entre ˜vy et ci. Sachant que tous les mots de code possèdent la même norme,

l’algorithme de Viterbi extrait donc le mot de code ci ∈ C formant le plus petit angle |θ

i| avec ˜vy.

En supposant que le bruit d’attaque est un bruit blanc gaussien, l’attaque n’a aucune influence sur la corrélation et l’on retrouve, lors de l’extraction, le mot de code c∗utilisé lors de l’insertion.

Pour insérer le message m lors du codage, il suffit donc de réduire l’angle entre le vecteur hôte vxet le mot de code c∗, jusqu’à obtenir le plus petit angle (parmi tous les autres angles possibles

\ (vx, ci)).

Pour réduire l’angle entre vxet c∗, nous exprimons d’abord les deux vecteurs dans le plan de

Miller, Cox et Bloom (abrév. plan MCB) [Cox et al. 07b]. La figure 2.3 illustre ce plan. Le plan MCB est défini par une base ortho-normalisée (v1, v2) telle que le vx et c∗ appartiennent à ce

plan (algorithme de Gram-Schmidt) : v1 = c∗ ||c∗||, v2 = vx− (vx.v1)v1 ||vx− (vx.v1)v1||

Dans le plan MCB, les coordonnées 2D du vecteur hôte vxsont :

v2Dx [1] = vx.v1,

v2Dx [2] = vx.v2,

et les coordonnées 2D du mot de code c∗ sont :

c∗2D[1] = ||c∗||, c∗2D[2] = 0. Une rotation du vecteur hôte v2D

x d’un angle θ dans le plan MCB est telle que :

v2Dy [1] = cosθ.vx2D[1]− sinθ.v2D x [2],

v2Dy [2] = sinθ.v2Dx [1] + cosθ.v2Dx [2].

Si nous réduisons la valeur absolue de l’angle entre le vecteur hôte vxet le mot de code c∗dans

le plan MCB, cela augmente la corrélation vx.c∗. Avec une approche dichotomique sur l’angle de

rotation, on peut rapidement trouver une frontière de Voronoï. L’algorithme consiste à itérer une dizaine de fois les instructions suivantes :

1. tourner vxet obtenir vydans le plan MCB,

2. exécuter l’algorithme de Viterbi sur le treillis « complet » et tester si vyappartient ou non à

la région de Voronoï de c∗i.e. vérifier si le vecteur décodé est égal ou non à c,

3. modifier l’angle de rotation en fonction du résultat d’appartenance à la région de Voronoï region et retourner en 1.

FIGURE2.3 – Insertion basée rotation dans le plan de Miller, Cox et Bloom

Une fois que l’angle frontière θf dans le MCB est trouvé, on améliore la robustesse d’insertion

en pénétrant à l’intérieur de la région de Voronoï avec un angle θR. Notre insertion informée

est donc une rotation du vecteur hôte vx d’un angle orienté égal à max(θf + θR, (\vx, c∗)). La

figure 2.3 illustre vx, vy, θf et θR dans le plan MCB. Notons qu’un des critères de sécurité

proposé dans [Xie et al. 10b] pour contrecarrer l’attaque par analyse en composante principale de [Bas et al. 09], et tenter d’améliorer l’algorithme de Broken Arrows consiste à imposer ||vy|| =

||vx||. C’est exactement ce que nous faisons en effectuant une rotation de vx; la norme de vyest

2.3.3 Une extension psychovisuelle

Afin que l’impact du tatouage soit psychovisuellement invisible, il est classique de « mettre en forme » le signal de tatouage à travers l’utilisation d’un masquage psychovisuel. Grosso modo, la puissance du signal de tatouage doit être réduite dans les régions uniformes et doit être aug- mentée dans les régions texturées ou les régions de contours. L’extension psychovisuelle que nous présentons brièvement ici est traitée plus en détails dans [Chaumont 09b]. L’algorithme est ap- pelé Psychovisual Rudimentary mask RB-DPTC (PR-RB-DPTC). Notons que dans l’algorithme PR-RB-DPTC nous avons également ajouté une phase de codage du message par un code détec- teur/correcteur d’erreurs de rendement 1/2 [Chaumont 09b]. La figure 2.4 donne le schéma géné- ral d’insertion avec l’utilisation d’un masque psychovisuel. On voit donc se greffer trois grandes étapes par rapport au schéma de la figure 2.2 :

FIGURE2.4 – Embedding scheme with a psychovisual mask

1. la construction d’un espace psychovisuel xpsy. Dans cet espace, les coefficients sont psy-

chovisuellement équivalents. Les coefficients sont donc tous traités de la même façon. Cet espace psychovisuel est tel que :∀i ∈ [1, Nwlt], xpsy[i] = x[i]/α[i], avec α le masque psy-

chovisuel ;

2. la mise en forme du signal de tatouage grâce au masque α : ∀i ∈ [1, Nwlt], w[i] = wpsy[i]×

α[i].Cette mise en forme réduit l’impact psychovisuel du tatouage dans les régions où celui- ci aurait été visible. Par exemple, la valeur de α sera faible dans les régions où l’intensité lumineuse est uniforme, afin de réduire la puissance de w dans ces régions ;

3. l’insertion du signal de tatouage « mis en forme ». Cette insertion est telle que : ∀i ∈ [1, Nwlt], y[i] = w[i] + x[i].

Lors du décodage, le décodeur doit recalculer le masque psychovisuel. C’est une particularité de l’approche que nous proposons. Dans l’algorithme BA ou DPTC, l’impact psychovisuel est pris en compte lors de l’insertion et il n’y a pas de calcul de masque lors de l’extraction. Cela dit, les approches utilisées dans BA et DPTC sont difficilement réappliquables pour l’approche RB-DPTC car les hypothèses ne sont pas adaptées ou bien parce que la complexité calculatoire est élevée. L’approche de [Le Guelvouit 09] pourrait, être envisagée et consiste à effectuer la mise en forme

du signal de tatouage lors de la phase de rétroprojection sur les porteuses. Notons que l’approche que nous proposons permet d’utiliser n’importe quel masque psychovisuel de la littérature.

Le calcul du masque psychovisuel lors de l’extraction est une phase délicate, car le masque recalculé doit être le même que celui utilisé lors de l’insertion. Si le masque recalculé diffère trop du masque calculé lors de l’insertion, l’extraction du message inséré risque d’être erronée. Ainsi, le masque doit en plus d’être un masque psychovisuel, posséder des propriétés de robustesse aux différentes attaques d’un système de tatouage. Notons qu’à ma connaissance aucune recherche n’a pour le moment traité des masques psychovisuels robustes.

Ainsi, le décodeur extrait le vecteur ondelette à partir de l’image tatouée attaquée, divise chaque composante i par α[i] (α est recalculé au décodeur), projette le vecteur résultant sur les porteuses secrètes puis récupère le mot de code le plus proche (et donc le message) à partir du livre du code C.