Vous êtes sur la page 1sur 7

Utilisation des codes LDPC en stganographie

I. DIOP1 ; S .M FARSSI 1; M.CHAUMONT 2,3,4 ;O. KHOUMA 1; H. B DIOUF 1 (1) Ecole Suprieure Polytechnique de lUniversit Cheikh Anta Diop Dakar Sngal ; (2) Universit de Nmes, F-30021 Nmes Cedex 1, France ; (3) Universit de Montpellier 2, UMR5506-LIRMM, F-34095 Montpellier Cedex 5, France (4) CNRS, UMR5506-LIRMM, F-34392 Montpellier Cedex 5, France email: marc.chaumont@lirmm.fr ; idydiop@yahoo.fr; farsism@yahoo.com

Rsum
La stganographie est lart de la communication secrte [1]. Depuis lavnement de la stganographie moderne, dans les annes 2000, de nombreuses approches bases sur les codes correcteurs derreurs (Hamming, BCH, RS) ont t proposs pour rduire le nombre de modifications du support de couverture tout en insrant le maximum de bits. Les travaux de Jessica Fridrich ont montr que les codes matrices creuses approchent le mieux la limite thorique defficacit dinsertion. Nos travaux de recherches sont dans la continuit de ceux sur les codes faible densit (LDGM) proposs par T. Filler en 2007. Dans cet article nous proposons une nouvelle approche avec lutilisation des codes correcteurs LDPC1 plutt que les codes LDGM.2 La complexit de notre approche est bien moindre que celle de T. Filler ce qui la rend utilisable en pratique.

Beaucoup de schmas stganographiques reposant sur le principe de matrix embedding (il y a une utilisation dtourn des codes correcteurs) ont t proposs par le pass BCH, RS[2][3][4]. Ces schmas sont en gnral loigns de la borne thorique defficacit. Notre travail poursuit la mme optique de minimisation du nombre de modification du support hte en proposant une approche base sur lutilisation des codes correcteurs LDPC. Notre approche a lavantage dtre moins complexe que lapproche LDGM [5] tout en tant trs proche de la borne thorique defficacit dinsertion. Dans la section 2, nous rappelons le principe du concept de matrix embedding . Dans la section 3, nous passons en revue le principe de fonctionnement des codes LDPC. Dans la section 4, nous expliquons notre approche. Enfin dans la section 5, nous prsentons les rsultats exprimentaux.

Mots-clefs
Codes LDPC, Encodage, Dcodage, Stganographie.

Concept de matrix embedding

Introduction

La stganographie est lart de la communication secrte. Elle consiste insrer un message dans un mdium anodin par exemple une image, une vido, un son de manire ce que cette insertion soit statistiquement indcelable. Une des hypothses retenues avant 2011 consistait dire quil suffisait de minimiser le nombre de modification du mdium pour assurer la scurit maximale du schma. Cette hypothse est remise en question depuis la comptition BOSS. Ceci dit, ltude des codes correcteurs permettant dinsrer un message tout en minimisant le nombre de modification reste un problme intressant.
1 2

Low Density Parity Check Low Density Generator Matrix

La technique de matrix embedding est une mthode de codage par syndrome, utilisant la thorie de codes correcteurs derreur. Elle a t dcouverte par Grandall [6] en 1998, et fut implmente pour la premire fois par Westfeld [7] avec lalgorithme de stganographie F5. Cette technique consiste dtourner lutilisation classique des codes dtecteurs et correcteurs derreur. Lobjectif est de transmettre un message au sein dune image via la modification de limage, mais avec la contrainte de minimiser le nombre de coefficients de limage modifis. Lide consiste du ct dcodeur (c'est--dire la rception de limage) calculer les syndromes de chaque bloc de coefficients partir de la matrice de contrle du code correcteur. Le syndrome correspond au message qui est contenu dans limage. Toute lastuce consiste donc, du ct codeur (cest--dire lmission de limage), modifier limage de sorte que les syndromes calculs au niveau du dcodeur reprsentent le message et galement de sorte que limage soit la moins modifie.

Soit un vecteur extrait du medium de couverture et notre message cacher. Il sagit dinsrer le message dans en le modifiant le moins possible. Pour cela la technique est de modifier en tel que : O H reprsente la matrice de contrle de parit du code. Pour trouver , nous cherchons un vecteur e ayant comme syndrome . Nous posons alors ce qui donne Le problme consiste donc trouver ce vecteur e (code ayant comme syndrome m) ayant un nombre minimal de coefficients afin de diminuer la dgradation du mdium de couverture.

O ( ) caractrise la proportion du nombre de branches connectes aux nuds de donnes ( aux nuds de contrle) de degr i par rapport au nombre total de branche. Le degr est dfini comme le nombre de branches connectes un nud.

3.2

Encodage

3
3.1

Les codes LDPC


Dfinition

Un code LDPC est un code dont la matrice de contrle de parit H est de faible densit. La faible densit signifie quil y a plus de 0 que de 1 dans la matrice H [8]. Un code LDPC peut tre reprsent sous forme matricielle ou bien sous la forme dun graphe bipartite (reprsentation de Tanner). Par exemple, la matrice suivante : ( ),

Les travaux de T.J. Richardson et R.L Urbanke [9] ont montr que la matrice de contrle doit subir un prtraitement avant lopration dencodage. Lobjectif de ce prtraitement est de mettre la matrice H de taille mn sous une forme presque triangulaire infrieure, comme illustr sur la Figure 2, en utilisant uniquement des permutations de lignes ou de colonnes. Cette matrice est compose de 6 sous-matrices creuses, notes A, B, C, D, E et dune sous-matrice triangulaire infrieure T de taille m-g m-g. Une fois que le prtraitement de H est achev, le principe dencodage est bas sur la rsolution du systme reprsent par lquation matricielle suivante [7] :

Figure 1: Graphe bipartite d'un code LDPC La matrice peut tre reprsente par le graphe de la figure 1. Les lignes de la matrice sont reprsentes par des carrs et sont appeles nuds de contrle, les colonnes de la matrice sont reprsentes par des cercles et sont appeles nuds de donnes et les 1 reprsentent les arrtes du graphe. Il y a deux familles de codes LDPC : les codes rguliers et les codes irrguliers. Les codes LDPC rguliers sont les codes dont le nombre de 1 par ligne et le nombre de 1 par colonne sont constants. Par extension, les codes LDPC irrguliers sont les codes dfinis par des matrices de contrle de parit o le nombre de 1 par ligne ou par colonne nest pas constant. Lirrgularit de ces codes se spcifie travers deux polynmes et . Figure 2: Reprsentation sous forme pseudo-triangulaire infrieure de la matrice H Lalgorithme de prtraitement est dcrit ci-dessous de manire succincte [10]: 1- [Triangulation] Permutations des lignes ou des colonnes pour avoir une approximation de la matrice H sous forme triangulaire infrieure : ( )

avec un gap g petit si possible. Nous verrons dans la section suivante comment ceci peut tre accompli efficacement.

2- [Contrle de rang] limination gaussienne pour effectuer la prmultiplication par ( prmultiplication permet dobtenir : ( ( )( ) ). ). Cette

La mise jour des messages issus du nud de donnes v litration i est calcule de la faon suivante : O reprsente le log-rapport de vraisemblance issue de lobservation en sortie du canal :

Il est ncessaire de vrifier que est inversible pour que le processus de prtraitement soit utilisable pour la rsolution de lquation (3). Lors de la rsolution de lquation (3), le mot de code recherch est dcompos en trois parties : o d est la partie systmatique (c'est--dire un lment de la base canonique du sous espace vectoriel de dimension n-m comme indiqu sur la figure 2), o les bits de redondances recherchs sont spars en deux vecteurs r1 et r2 de tailles respectives g et m-g. Aprs multiplication droite par la matrice ( devient : ), lquation (3)

et o reprsente lensemble des nuds de contrle connects au nud de donnes v. la premire itration, les messages provenant des nuds de contrle sont nuls. La mise jour des messages issus du nud de contrle c litration i est calcule de la faon suivante : ( ( ))

O reprsente lensemble des nuds de donnes connects au nud de contrle c.

4
Lquation (5) permet de trouver en inversant . Lquation (4) permet ensuite de trouver . Remarquons que la phase de prtraitement est une phase qui ncessite de nombreuses oprations coteuses en temps de calcul. Par contre, toutes les oprations rptes au cours de lencodage ont une complexit en except la multiplication de par la matrice carre de taille qui aprs insertion nest plus creuse do une complexit en . T.J. Richardson et R.L Urbanke ont aussi montr que lon peut obtenir une valeur de g gale une faible fraction de n : o est un coefficient suffisamment faible pour que pour des valeurs de n allant jusqu . Ainsi, la complexit de lapproche dencodage est de complexit O(n).

Principe du schma bas sur les codes LDPC

4.1

Minimisation de limpact dinsertion

3.3

Dcodage

Le dcodage des codes LDPC seffectue partir dalgorithmes itratifs dont le plus utilis est lalgorithme de propagation de croyance nomm BP3. Cet algorithme est itratif et repose sur un mcanisme classique de propagation de croyance. chaque itration, il y a change de messages entre les nuds de donnes et les nuds de contrle sur un mme arc du graphe bipartite. Lalgorithme consiste mettre jour, dabord les nuds de donnes, puis les nuds de contrle et enfin prendre une dcision de dcodage du mot de code le plus probable (voir travaux de Jean-Baptiste Dor [11]).
3

Lorsque nous souhaitons insrer un message en utilisant un schma de stganographie par matrix embedding , nous prenons une reprsentation du support hte sous forme dun vecteur (par exemple les LSB dune image en niveau de gris). Ce vecteur hte est alors modifi en un vecteur stgo . Le message binaire est reprsent par un vecteur binaire avec . Dans le cas des codes LDPC, la matrice de contrle de parit H est utilise pour lencodage et galement pour le { dcodage. Soit le coset4 correspondant au syndrome (avec m le message secret). Linsertion (Emb) et lextraction (Ext) du message peuvent tre modlises par : avec || || le poids de Hamming, c'est--dire le nombre de modification du vecteur. Lapproche par matrix embedding consiste dterminer le vecteur u membre du coset tel que : o c est un mot de code. Toute la problmatique du matrice embedding est de dterminer le vecteur y = v = u+c. En effet, le vecteur u+c fait partie du Coset C(m).
4

Belief Propagation

Lensemble des mots de code qui ont le mme syndrome

la rception de la stego image, le rcepteur pourra effectuer le calcul H.y et ainsi retrouver le message m.

4.2

Le schma propos

T. Filler sest intress dans ses travaux la conception des schmas stganographiques optimaux. En effet, il a montr que le problme de minimisation de l'impact statistique d'insertion en stganographie est quivalent la quantification binaire gnralement rencontre dans les normes de compression. ce titre, il a propos un algorithme (Belief Propagation) permettant la rsolution de quantification binaire en stganographie. En pratique, la validit de cette approche a t teste grce la gnration des mots codes obtenus avec la matrice gnratrice LDGM. En tudiant la complexit et la condition de convergence algorithmique du problme de la quantification binaire en stganographie, il a montr les bonnes dispositions des codes densit faibles pour la construction de schmas de stganographie optimaux. Nous nous inspirons non seulement de Filler mais aussi du concept des matrix embedding pour proposer lutilisation des codes LDPC. Dans ses travaux, Filler a fait appel deux matrices carrs qui permettent de traiter la matrice gnratrice sous forme triangulaire. Nous allons montrer que ce traitement est plus simple avec les codes LDPC. Notre travail est donc un prolongement du travail de T. Filler, pour ce qui nous concerne, lutilisation des codes densit faibles en stganographie. Nous proposons une matrialisation pratique de son approche en simplifiant certains aspects de son approche plus thorique. Nous allons chercher minimiser le nombre de pixels changer pour insrer un message dans une image de couverture. Nous prenons comme reprsentant de limage couverture le vecteur binaire x compos des LSB (Least Signifiants Bits) des pixels choisis pour insrer le message. Linsertion du message dans x est alors ralise comme cela : 1. [Traitement de la matrice de contrle] Le prtraitement de la matrice de contrle de parit est ralis comme nous lavons expliqu en Section 3.2. Notons que la mthode propose par T. Filler est diffrente pour cette phase de prtraitement. 2. [Calcul dun vecteur u] Nous calculons le vecteur u membre du coset selon : o est la transpose de la matrice obtenue via lalgorithme de prtraitement dcrit dans la Section 3.2. Ce qui diffre de lapproche de

Filler. En effet pour dterminer u, T. Filler a fait un traitement au niveau de la matrice gnratrice G du code LDGM avec lintroduction de deux matrices dont il suppose lexistence : Pr matrice qui permute les lignes, Pc la matrice qui permute les colonnes. Filler a abouti la relation suivante : (PrGPc)T=GT=( o ( )

) est une matrice presque

3.

4.

triangulaire comme illustr sur le figure 2. Pour faire ce travail, il sest inspir des travaux de Richardson et Urbanke, finalement il a pos : u=Pr-1.(m,0) ou 0 est un vecteur qu il concatne au message m pour que la multiplication matricielle soit possible. Nous voyons que cette approche est trs complexe pour la dtermination du vecteur u. Raison pour laquelle nous proposons une mthode beaucoup plus simple avec les codes LDPC. [Calcul du vecteur c] Calcul de c = (d, r1, r2), avec d la partie systmatique (c'est--dire un lment de la base canonique du sous espace vectoriel de dimension n-m comme indiqu sur figure 2). Les vecteurs r1 et r2 sont dtermins comme expliqu dans la Section 2.2. [dtermination du vecteur de modification r] Nous dterminons le vecteur r qui approche comme dcrit dans lquation (13) en excutant lalgorithme BP qui prend en entre x-u-c et retourne le mot de code r. Notons que T. Filler utilise galement lalgorithme BP avec la mme approche pour obtenir le vecteur de modification r. Une fois que le vecteur de modification r est obtenue, nous calculons le vecteur stego y = r + u.

Figure 3: Schma bas sur les codes LDPC

La Figure 3 donne une reprsentation des diffrentes tapes du processus dinsertion dun message dans un vecteur de couverture en utilisant les codes LDPC

La Figure 5 donne une reprsentation de la matrice de contrle de parit en sortie de lalgorithme de prtraitement dcrit en Section 3.2.

Prsentation rsultats

et

analyses

des

La construction dun code LDPC consiste remplir avec des valeurs non nulles la matrice de parit. Pour optimiser la construction des codes LDPC, nous utilisons lapproche en trois tapes de Claude Berrou (optimisation des profils dirrgularit, optimisation de la taille des cycles, slection du code par la mthode impulsionnelle). La Figure 4 donne une reprsentation dune matrice de contrle de parit dun code LDPC en respectant ces principes.

Figure 6: Distorsion pour les diffrents messages insrs dans un vecteur de longueur 500

Figure 4: Exemple de matrice de parit LDPC Sur la Figure 4, la matrice est de taille 100 x 200, cest-dire 100 lignes et 200 colonnes. Les valeurs non nulles (nz=none zero dans la figure) sont reprsentes par des points en bleu et sont au nombre de 600. Le taux vaut . Pour cet exemple, 3% des lments de la matrice sont non nuls.

Figure 7: Distorsion pour les diffrents messages insrs dans un vecteur de longueur 1000 Les Figure 6 et Figure 7 donnent une reprsentation des diffrentes valeurs de la distorsion (nombre de pixels modifis) dans les vecteurs de couverture de longueurs 500 bits et 1000 bits respectivement en fonction de la longueur du message. Les messages et les vecteurs de couverture sont gnrs de faon alatoire. Pour le vecteur de 500 bits, les messages insrs ont des tailles allant de 25 250. La borne suprieure est gale 250 bits parce que la taille du message doit satisfaire lingalit suivante : avec m et n les tailles respectives du message et du vecteur de couverture. Pour le vecteur de 1000 bits, les messages insrs ont des tailles allant de 50 500. Notons que les vecteurs de couverture peuvent tre

Figure 5 : Reprsentation sous forme presque triangulaire de la matrice de parit

considrs comme les LSB des pixels dune image de couverture. Remarquons aussi que la distorsion est pratiquement linaire par rapport la taille du message

Figure 8: Comparaison de performances entre les codes La limite thorique suprieure de lefficacit dinsertion est [11] :

La manipulation directe de la matrice de contrle des codes LDPC, plus compatible au calcul de syndrome avec lutilisation des codes correcteurs, a permis la rduction de la complexit grce une tape de prtraitement. Les rsultats obtenus confirment que les codes LDPC binaires permettent dinsrer un message en minimisant le nombre de pixels modifis. En comparaison avec les codes STC binaires [12] (avec une utilisation dun cot de dtectabilit constant), les codes LDPC prsentent une performance, car ils sapprochent bien plus de la limite thorique defficacit dinsertion. Nos recherches futures sorienteront aprs vers lutilisation de codes photographes [13] issus des codes LDPC et qui ont une configuration beaucoup plus creuse. Par ailleurs, nous envisageons aussi dtudier des codes LDPC non binaires. Enfin, comme nous lavons soulign en introduction, actuellement les schmas de stganographie les plus srs prennent en compte la dtectabilit de chaque pixel lors de linsertion. Il est donc ncessaire dintgrer cette carte de dtectabilit dans la cration de nouveaux codes (le code STC est un exemple de code prenant en compte la carte de dtectabilit) [14] et procder la stganalyse de ce schma pour nous prononcer de faon plus approfondie sur la performance.

avec (le payload) et H est la fonction dentropie qui est dfinie par : . La Figure 8 prsente une comparaison des performances dinsertion des codes LDPC, STC et Hamming ainsi que le trac de la borne thorique defficacit dinsertion. Les valeurs de lefficacit dinsertion pour les codes LDPC sont obtenues par insertion de 10 messages dans un vecteur de taille . Les valeurs defficacit dinsertion pour le code STC sont obtenues en excutant le code source de Tom Filler et Jessica Fridrich (avec un rglage de cot de dtectabilit constant). Les valeurs defficacit des codes de Hamming sont dtermines par la formule suivante avec p un entier naturel. La figure 8 confirme lhypothse de Jessica Fridrich selon laquelle les codes matrices creuses approchent de trs prt la limite thorique de lefficacit dinsertion. Les codes LDPC sont donc de bons candidats pour la stganographie par minimisation du nombre de pixels modifis.

Rfrences
[1] Jessica Fridrich, Steganography In digital media principles, Algorithms, and Application, Binghamton University, State University of New York, Cambridge University Press, 2010. [2] Rongyue Zhang, Vasiliy Sachnev, Hyoung Joong Kim, Fast BCH syndrome coding for steganography ; S. Katzenbeisser and A.-R. Sadeghi (Eds.), IH 2009, LNCS 5806, pp. 44-58, Springer-Verlag Berlin Heiderbelg 2009. [3] Vasiliy Sachnev, Hyoung Joong Kim, Rongyue Zhang, Less detectable JPEG steganography method based on heuristic optimization and BCH syndrome coding; MM& Sec 09, Princeton, New Jersey, USA, September 2009.

[4] F. Galand C. Fontaine. How can Reed-Solomon codes improve Steganographic schemes. In Information Hidding, Rennes, France, 2009. [5] Tomas Filler, Minimizing Embedding Impact in Steganography Using Low Density Codes, Thesis, Department of Electrical and Computer Engineering, SUNY Binghamton, USA, 2006/2007. [6] R. Crandall. Some notes on steganography. Posted on Steganography Mailing List (1998). [7] A. Westfeld. High capacity despite better steganalysis (F5 a steganographic algorithm). In: Moskowitz, I.S. (ed.) IH 2001. LNCS, vol. 2137, pp. 289302. Springer, Heidelberg (2001).

Conclusion

Dans cet article, nous avons rappel le principe de fonctionnement des codes LDPC. Nous avons ensuite prsent une approche de matrix embedding sinspirant de lapproche plus thorique de T. Filler qui a montr en sappuyant sur la Low Density Generatrice Matrix (matrice gnratrice) que le problme de minimisation de l'impact statistique d'insertion en stganographie est quivalent la quantification binaire.

[8] Claude Berrou, Codes et turbocodes ; 1e dition, Springer - Verlag, France, 2007 [9] T.J. Richardson and R.L Urbanke, Efficient Encoding of Low-DensityParity-Check Codes , IEEE Trans. Inform. Theory, vol. 47, pp. 638-656, February 2001. [10] Jean-Baptiste Dor, Optimisation conjointe de codes LDPC et de leurs architectures de dcodage et mise en uvre sur FPGA , Thse pour obtenir le grade de Docteur lINSA de Rennes, Spcialit : Electronique, Soutenue le 26 Octobre 2007. [11] Tom Filler, Jan Judasand Minimizing Additive Distortion Using Syndrome-Trellis TRANSACTIONS ON FORENSICS AND SECURITY, SEPTEMBER 2011. Jessica Fridrich, in steganography Codes, IEEE INFORMATION VOL. 6, NO. 3,

[12] Tom Filler, Jan Judas et Jessica Fridrich, Minimizing Embedding Impact in Steganography using Trellis-Coded Quantization, Department of Electrical and Computer Engineering SUNY Binghamton, Binghamton, NY 13902-6000, USA 2010. [13] Todd K Moom, ERROR correction CODING Mathematical Methods and Algorithms, Utah State University, Copyright 2005 by John Wiley &Sons, Inc. [14] Tom Pevn, Tom Filler and Patrick Bas, Using High-Dimensional Image Models to Perform Highly Undetectable Steganography, Czech Technical University in Prague, Czech Republic; State University of New York in Binghamton, NY, USA; CNRS-LAGIS, Lille, France, 2010.