• Aucun résultat trouvé

La très grande majorité des méthodes d’insertion considère l’image comme

2 .2 Méthodes usuelles d’insertion de messages

Remarque 2.1. La très grande majorité des méthodes d’insertion considère l’image comme

une succession d’échantillons (les pixels de chaque canal de couleur). Le message à insérer est

décomposé en bits, MFL

2 = {0; 1}L (ou plus rarement en symboles q-aires), puis ces bits sont ensuite insérés indépendamment dans les échantillons. Ce schéma usuel s’explique notam-ment par sa simplicité de mise en œuvre (insertion et extraction), par la possibilité d’utiliser les méthodes usuelles de codage, préalablement à l’insertion, et par sa possibilité de “disperser” les bits du message M dans l’image de couverture C.

Stéganographie par substitution de LSB (“LSB Replacement”)

Le bit, bn,0, de moindre influence sur la valeur du pixel znest appelé bit de poids faible ou, en anglais, “Least Significant Bit” LSB . L’équation (2.1) met en évidence que si l’on

modifie bn,0 la valeur du pixel zn n’est modifiée que de ±1. Or la modification d’un bit de poids faible d’un pixel dans une image numérique naturelle sera imperceptible compte-tenu de la sensibilité de la vision humaine. Par ailleurs, comme l’illustre la figure 2.3, si l’on observe les différents plans de bits d’une image (les i-ème bits de chacun des pixels), on constatera que les plans des bits de poids faibles sont nettement

moins structurés que ceux de poids plus forts. Il est donc tout à fait possible d’insérer L’insertion est possible pour peu que le nombre de bits à insérer ne dépasse pas le nombre de pixels : L≤N.

un message quelconque, sous sa forme binaire, en substituant les LSB d’autant de pixels que nécessaire. L’émetteur et le récepteur de l’image stéganographiée doivent préalablement échanger un sens de parcours des pixels de l’image. Comme évoqué

dans la définition 2.1, pour éviter aux protagonistes d’avoir à échanger une quantité

d’information supérieure à celle qu’ils souhaitent dissimuler, il est usuel d’utiliser une

permutation pseudo-aléatoire pK construite à partir d’une clé K (également appelée

graine). Plus formellement, la permutation pKutilisée est une bijection de l’ensemble

{1, . . . , MN} sur lui-même (automorphisme) : pK : {1, . . . , MN} 7→ {1, . . . , MN}. Ainsi le LSB du`-ième pixel parcouru bp(`),0=bpK(`),0prendra la valeur du`-ième bit à insérer m`(l’indice K est omis dans la suite pour alléger les notations).

Schématiquement, considérons le pixel de couverture cp(`) dans lequel on souhaite

insérer le `-ième bit d’information m`. Le pixel stéganographié sp(`) s’écrit alors de manière équivalente [18,22,23] :

sp(`)=2cp(`)/2

k

+m`= Q2[cp(`)] +m` (2.2)

oùb·creprésente l’opération d’arrondi par défaut etQ2[·]représente la quantification par “suppression du bit de poids” faible. Notons que la valeur du pixel peut ne pas être modifiée sp(`)=cp(`)si avant insertion on a lsb(cp(`)) =b0,p(`)=m`. À l’inverse,

lorsqu’une modification de la valeur c` est nécessaire on constatera que l’on a, de

manière équivalente :

lsb(cp(`)) 6=m`⇒sp(`)=cp(`)+1−2lsb(cp(`)) =cp(`)+ (−1)cp(`). (2.3)

La formulation (2.3) permet, comparativement à (2.2), de mettre en évidence l’impact de la substitution de LSB : si la valeur d’un pixel est paire cette dernière ne peut être qu’incrémentée alors qu’à l’inverse si la valeur d’un pixel est impaire cette dernière ne peut être que décrémentée.

Extraire le message de la stégo-image se fait alors simplement, en considérant que le mot de passe générateur de la permutation pseudo-aléatoire est connu. Comme l’illustre la figure2.4, le message extrait cMest alors recomposé en concaténant les LSB des pixels parcourus :

∀` ∈ {1, . . . , L},mb`=sp(`).

z1 z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 . . . m1 m2 m3 m4

b0,2

b0,7

b0,5 b0,10

Figure 2.4: Exemple simple d’insertion / d’extraction dans les premiers pixels d’une ligne ; le sens de parcours obtenu dans ce cas est défini par le vecteur : p= (10, 2, 7, 5, . . .).

Historiquement, la stéganographie par substitution des LSB fut la première à voir le jour. Elle demeure encore souvent implémentée dans les logiciels téléchargeables sur Internet pour sa simplicité de mise en œuvre. Il est d’ailleurs possible d’implémenter cette méthode de stéganographie en une seule ligne de commande PERL comme suit [24, p.99] [18, p.41] :

perl -n0777e '$_=unpack"b*",$_;split/(\s+)/,<STDIN>,5; @_[8]=~s{.}{$&&v254|chop()&v1}ge;

print@_'<image.pgm >stego_image.pgm secrettextfile

De nombreuses améliorations ont ensuite été proposées avec notamment pour but de réduire l’impact de l’insertion d’informations cachées (ou le nombre de modifica-tions nécessaires à quantité équivalente d’informamodifica-tions cachées) [25,26,27,28] ou de choisir la localisation des pixels à modifier dans les régions les plus structurées des images [29,30,31,32].

Parmi les logiciels de stéganographie couramment répertoriés, BMPsteg, Hide and Seek, StegoDos et Steganos notamment reposent sur le schéma d’insertion par substi-tution de LSB.

Stéganographie par correspondance de LSB (“LSB Matching”)

L’amélioration la plus courante et la plus étudiée de la stéganographie par substi-tution de LSB est la méthode d’insertion par correspondance des LSB ou, en “LSB matching” anglais. Cet algorithme de stéganographie, très proche de celui de substitu-tion de LSB, insère également le message M dans les LSB des pixels. Ici encore le sens de parcours des pixels est usuellement choisi en générant une permutation pseudo-aléatoire. La principale évolution introduite par la correspondance des LSB est que si la valeur du LSB du pixel considéré ne correspond pas à celle qui doit y être insérée, le stéganographe s’autorise à incrémenter ou décrémenter la valeur de ce pixel de fa-çon aléatoire. Dans les faits, incrémentation et décrémentation de la valeur du pixel (lorsque cela est nécessaire) sont généralement équiprobables.

Intuitivement, cette construction correspond au pire, c’est à dire ne créant pas de modification parti-culièrement identifiable. Dans un jargon plus proche de la théorie de l’information, la configuration d’équiprobabilité de l’incrémenta-tion et de la décremental’incrémenta-tion est celle minisant l’entropie relative des distributions avant et après insertion [33]

Formellement, considérons le pixel de couverture de valeur ck =cp(`)dans lequel on

souhaite insérer le`-ième bit d’information m` par correspondance de LSB. Le pixel

stéganographié zks’écrit alors de manière équivalente [18,22] : zk =ck+uk·xor(lsb(ck), m`) où uk+1

2 B(1, p) (2.4)

et xor(·)représente l’opérateur logique “ou exclusif” modélisant le fait que zk =ck si lsb(ck) =m`, en raison du fait que xor(lsb(ck), m`) =0. À l’instar de la relation (2.3), l’impact de la correspondance de LSB peut être mis en évidence, lorsqu’une modifica-tion de la valeur ckest nécessaire, en constatant que :

lsb(ck) 6=m`⇒zk=ck+uk = Q2ck+uk

+m`. (2.5)

L’algorithme D de décodage du message est identique à celui présenté dans le cas

de la stéganographie par substitution de LSB et illustré dans la figure2.4. En effet,

puisque le principe demeure de faire correspondre la valeur du LSB des pixels parcou-rus aux bits du message que l’on souhaite insérer, le décodage n’est en rien modifié.

Comme nous le verrons dans la section2.3, et avec plus de détails statistiques dans

le chapitre3, la légère modification introduite par la méthode de stéganographie par

correspondance des LSB modifie considérablement l’impact d’insertion ; détecter la présence d’informations cachées par correspondance des LSB est nettement plus déli-cat que lorsque l’information est cachée par substitution de LSB.

La méthode de stéganographie par correspondance des LSB a été introduite pour la première fois dans [34]. En effet, ayant été observé que la stéganographie par substitu-tion de LSB introduit des artefacts caractéristiques, de nombreuses méthodes (présen-tées dans la section2.3) permettant de détecter la présence de ces artefacts ont vu le jour. La stéganographie par correspondance de LSB n’introduisant pas ces artefacts ca-ractéristiques, les méthodes spécifiquement dédiées à la détection de stéganographie par substitution de LSB sont inefficaces pour détecter la correspondance de LSB.

Les diagrammes de la figure2.5illustrent les modifications engendrées par

l’inser-tion d’informal’inser-tions cachées selon quelques méthodes basées sur la substitul’inser-tion et la correspondance de LSB.

cn - 4 - 3 - 2 - 1 0 1 2 3 4 . . .

zn - 4 - 3 - 2 - 1 0 1 2 3 4 . . .

. . . . . .

0 1 0 1 0 1 0 1 0

(a) Substitution de LSB, équations (2.2) et (2.3)

cn - 4 - 3 - 2 - 1 0 1 2 3 4 . . .

zn - 4 - 3 - 2 - 1 0 1 2 3 4 . . .

. . . . . .

0 1 0 1 0 1 0

(b) Substitution de LSB avec valeurs omises (ici l’exemple de JSteg ignorant les valeurs 0 et 1)

cn - 4 - 3 - 2 - 1 0 1 2 3 4 . . . zn - 4 - 3 - 2 - 1 0 1 2 3 4 . . . . . . . . . 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 (c) Correspondance de LSB, équations (2.4) et (2.5) cn - 4 - 3 - 2 - 1 0 1 2 3 4 . . . zn - 4 - 3 - 2 - 1 0 1 2 3 4 . . . . . . . . . 1 0 1 0 1 0 1 0 1

(d) Correspondance de LSB adapté au format JPEG (ici l’exmple de F5)

Figure 2.5: Exemple de modifications engendrées par l’insertion d’informations cachées dans les LSB d’une image avec différentes méthodes (intensité du pixels cnavant et après zninsertion).