]> AND Private Git Repository - hdrcouchot.git/blob - ahmad.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
1b92dbced478c7e7e615150393e81f8704348b8a
[hdrcouchot.git] / ahmad.tex
1 En étudiant les schémas de watermarking,
2 nous avons constaté que très peu de travaux ciblaient les documents PDF
3 qui représentent cependant une part non anecdotique des données
4 échangées en ligne.
5 Parmi ces travaux, \cite{PD2008} propose la modification du nombre 
6 d'espaces entre les mots ou entre les paragraphes.
7 Similairement, les auteurs  de~\cite{DBLP:journals/sigpro/LeeT10}
8 ajoutent des caractères invisibles dans le document.
9 En supprimant ces espaces ou caractères invisibles, la marque s'enlève
10 facilement.
11 Dans~\cite{PD2008}, les auteurs modifient de manière imperceptible
12 le positionnements des caractères. D'autres éléments de positionnement
13 sont intégrés dans~\cite{WT08}.
14 Une attaque qui modifierait  aléatoirement de manière faible ces positions
15  détruirait la marque dans les deux cas.
16 La quantification (au sens du traitement du signal) est une réponse
17 à ces attaques: des positions modifiées de manière mal intentionnée  
18 peuvent grâce cette démarche être rapprochées (abstraites) en des positions
19 préétablies et conserver ainsi leur information et donc la marque.
20 STDM~\cite{CW01} est une instance de ces schémas de marquage.
21
22 Ce chapitre présente une application de STDM au marquage de documents PDFs.
23 \JFC{annonce du plan}
24
25 \section{Rappels sur la Spread Transform Dither Modulation}
26 \label{sec:STDM}
27 Les paramètres de ce schéma sont
28 \begin{itemize}
29 \item le facteur de quantification $\Delta$ qui est un réel positif; plus $\Delta$
30 est grand, plus la distorsion peut être importante;
31 \item le niveau d'indécision  $d_0$ qui est un réel dans
32 $[-\dfrac{\Delta}{2},\dfrac{\Delta}{2}]$; plus ce nombre a une valeur absolue
33 élevée, plus les erreurs peuvent être corrigées;
34 on définit $d_1$ par 
35 $$d_1 = \begin{cases} 
36   d_0 + \Delta/2, & \textrm{ si }~~d_0<0 \\  
37   d_0 - \Delta/2, & \textrm{ sinon } 
38 \end{cases}
39 $$
40 \item un nombre $L$ d'éléments dans lequel chaque bit de la marque 
41   est embarqué;
42 \item un vecteur $p$ de projection de taille $L$. 
43
44 \end{itemize}
45
46 Soit donc $x$ un vecteur de taille $L$ dans lequel on souhaite embarquer 
47 le bit $m\in\{0,1\}$. 
48 Ce vecteur est remplacé par $x'$ défini par 
49  
50 \begin{equation}\label{eq:stdm}
51 x' = f(x,m) = x+ ((\lfloor(\frac{(x^T p) -d_m}{\Delta})\rfloor\Delta +d_m )~ - x^T p)p
52 \end{equation}
53
54 Avec les mêmes paramètres $\Delta$, $d_0$ , $L$ et $p$ le message 
55 $\hat{m}$ extrait de 
56 $x'$ de taille $L$ est défini par:
57 \begin{equation}
58 \hat{m} = arg \min_{ m \in \{0, 1\}} \mid x'^T p - f(x,m) \mid
59 \label{eq:stdm:ext}
60 \end{equation}
61
62 Les auteurs de~\cite{CW01} ont montré que la variance de l'erreur 
63 est égale à $D_s = \Delta^2/12L$ 
64 lorsque chacun des $L$ éléments de $x$ suit une distribution uniforme 
65 $U(\Delta)$. 
66 Tous les éléments sont en place pour embarquer une marque 
67 dans un fichier PDF selon le schéma STDM.
68
69 \section{Application au marquage de documents PDF}
70
71 On détaille successivement comment insérer une marque dans un document PDF, 
72 puis comment l'extraire.
73
74 \subsection{Insertion de la marque}
75
76 On cherche à ajouter à un document PDF une marque $m$ de $k$ bits 
77 déjà codée (cryptée, correction d'erreurs incluse). 
78 L'insertion de celle-ci dans le document s'effectue 
79 en quatre étapes.
80
81 On considère comme fixés les paramètres  
82 $\Delta$,  $d_0$ , $L$ et la manière de construire le vecteur $p$ 
83 pour ce $L$ donné. 
84
85
86 \begin{enumerate}
87 \item Le vecteur hôte $x$ de taille $N$ 
88   est constitué de l'abscisse (flottante) 
89   de chaque caractère rencontré dans le document PDF. 
90   La dimension $L$ est calculée comme la partie entière de $N/k$.
91
92 \item Un générateur pseudo aléatoire (initialisé par une clef) 
93 construit $k$ ensembles $M_1$, \ldots, $M_k$ 
94 de taille $L$ mutuellement disjoints dans $[1,N]$. Ainsi 
95 $\bigcup_{1\le i \le k} M_i \subseteq [N]$. 
96
97
98 \item Pour chacun des ensembles $M_i$, $ 1 \le i \le k$, 
99   de l'étape précédente,  le vecteur $\dot{x} = (x_{j_1}, \ldots ,x_{j_L})$,
100   est construit où $\{j_1, \ldots, j_L\} = M_i$.
101   Le vecteur $\dot{x'} = f(\dot{x},m_i)$ est
102   construit selon l'équation~(\ref{eq:stdm}).
103   Dans $x$, chacun des $x_{j_1}, \ldots, x_{j_L}$ est remplacé par 
104   $\dot{x'}_{j_1}, \ldots, \dot{x'}_{j_L}$.
105
106 \item L'abscisse de chaque caractère est ainsi redéfini 
107   selon le nouveau vecteur de positions ${x'}$. 
108 \end{enumerate}
109
110 Voyons comment extraire une marque d'une document PDF.
111
112 \subsection{Extraction de la marque}
113
114 On considère comme connue la taille de la marque: c'est $k$ bits.
115 Les paramètres $\Delta$,  $d_0$ et la manière de construire 
116 $p$ en fonction de $L$ sont les mêmes qu'à l'étape précédente d'insertion de 
117 marque.
118
119 \begin{enumerate}
120 \item on récupère le vecteur $x'$ (de taille $N$ lui aussi) des abscisse des
121   caractères du document PDF comme dans la phase d'insertion. 
122   la valeur de $L$ est définie comme précédemment.
123
124 \item le même générateur pseudo aléatoire (initialisé avec la même clef) 
125 construit les $k$ mêmes ensembles $M_1$, \ldots, $M_k$ 
126 de taille $L$ mutuellement disjoints dans $[1,N]$. 
127
128 \item Pour chacun des ensembles $M_i$, $ 1 \le i \le k$, 
129   de l'étape précédente,  le vecteur $\dot{x'} = (x'_{j_1}, \ldots, x'_{j_L})$,
130   est construit où $\{j_1, \ldots, j_L\} = M_i$.
131   Le bit $\hat{m}_i$  est défini selon l'équation~(\ref{eq:stdm:ext})
132   en remplaçant $x'$ par $\dot{x'}$ .
133 \end{enumerate}
134
135 \section{Expérimentations }
136 Le schéma de marquage est paramétré par $\Delta$,  $d_0$ et la manière de construire le vecteur $p$ pour une taille $L$. 
137 Les travaux réalisés se sont focalisés sur l'influence du paramètre 
138 $D_S = \frac{\Delta^2}{12L}$ dans l'algorithme en satisfaisant 
139 les deux contraintes antagonistes
140 de fournir une marque suffisamment robuste
141 et suffisamment transparente.
142 On cherche deux réels $a$ et $b$   tels que
143 $a$ et $b$ correspondent respectivement 
144 au seuil maximum pour être transparent et 
145 au seuil minimum pour être robuste. 
146 Les études de perceptibilité doivent permettre de déterminer $a$ tandis 
147 que celles sur la robustesse devront fixer le seuil $b$.
148 Finalement, les contraintes précédentes seront  satisfaites si et seulement si  
149 $a > b$ et $D_s \in [b,a]$.
150
151 Concernant la transparence, 
152 les expériences présentées dans l'article~\cite{BDCC16} ont consisté en 
153 choisir un texte d'un nombre fixe de caractères $n$
154 dans lequel doit être embarqué une marque de taille fixe $k$.
155 En faisant varier la valeur de $\Delta$, nous avons remarqué que la 
156 valeur $a= 0,01335$ est le seuil au delà duquel il est visuellement 
157 possible de remarquer une différence entre le document original 
158 et le document marqué.
159
160 Il nous reste à détailler les expériences d'étude de robustesse de la démarche.
161 Comme dans l'évaluation de la transparence, il s'est agit de faire 
162 varier le paramètre  $\Delta$.
163 Pour chacune de ces valeurs, le document a été altéré selon 
164 un flou gaussien (de paramètre 0,1 et 0,25)  
165 et une attaque de type poivre et sel (de paramètre 0,1 et 0,25 aussi).
166 Le rapport entre le nombre de bits erronés par rapport au nombre total 
167 de bits (nommé BER ci-après) après l'extraction du message est alors calculé. 
168 Le facteur de quantification a été choisi entre 0.1 et 10. 
169 L'expérience a été répétée 500 fois et les moyennes sont représentées 
170 à la figure~\ref{fig:pdf:atq:ber}.
171 Sur cette figure, on constate que pour peu que la quantification $\Delta$
172 soit supérieure à 1,  le taux d'erreur est inférieur à 12,5\%. Ce taux peut 
173 être corrigé par un code correcteur usuel.
174 Avec les paramètres de l'expérimentation, cela revient à considérer un seuil 
175 $b=0,00214$. 
176 Ces expériences ont ainsi pu valider l'existence de seuils de distorsion
177 permettant d'avoir une méthode à la fois robuste et transparente.
178
179
180
181 \begin{figure}[ht]
182 \begin{center}
183 \begin{tikzpicture}
184
185         \begin{axis}[%
186             axis x line=bottom,
187             axis y line=left,
188             xlabel=$\Delta$,
189             ylabel=$BER~(\%)$,
190 width=0.66\textwidth,
191             legend pos=north east]
192             \addplot[mark=none, dashed, red,thick] coordinates {(0.1, 13.8742) (0.5, 12.8721) (1, 8.4680) (1.1, 7.3940) (1.2, 6.5020) (1.3, 5.7960) (1.4, 4.9580) (1.5, 4.1180) (1.6, 3.8080) (1.7, 3.2580) (1.8, 2.8320) (1.9, 2.5000) (2, 2.2100) (2.1, 2.0420) (2.2, 1.8120) (2.3, 1.6080) (2.4, 1.4040) (2.5, 1.3860) (3, 1.1100) (5, 1) (10, 1)};
193
194  \addplot[mark=none, dotted, green,thick] coordinates {(0.1, 10.3501) (0.5, 7.1) (1, 4.7420) (1.1, 4.0580) (1.2, 3.3620) (1.3, 2.8260) (1.4, 2.3900) (1.5, 2.1220) (1.6, 1.9260) (1.7, 1.6540) (1.8, 1.4460) (1.9, 1.3680) (2, 1.3400) (2.1, 1.2460) (2.2, 1.1420) (2.3, 1.0920) (2.4, 1.0600) (2.5, 1.0460) (3, 1.0100) (5, 1) (10, 1)};
195
196  \addplot[mark=none, dashdotted, blue,thick] coordinates {(0.1, 15.3222) (0.5, 13) (1, 11.1560) (1.1, 10.2920) (1.2, 9.8520) (1.3, 8.7860) (1.4, 8.3960) (1.5, 7.3480) (1.6, 7.0880) (1.7, 6.0940) (1.8, 5.2100) (1.9, 4.8860) (2, 4.5940) (2.1, 4.0140) (2.2, 3.6060) (2.3, 3.3520) (2.4, 2.9300) (2.5, 2.6140) (3, 1.7000) (5, 1.0140) (10, 1)};
197
198  \addplot[mark=none, dash pattern=on 10pt off 2pt on 5pt off 6pt, black,thick] coordinates {(0.1, 13) (0.5, 10.7) (1, 9.3340) (1.1, 8.7580) (1.2, 7.7080) (1.3, 6.7580) (1.4, 5.9260) (1.5, 5.4320) (1.6, 4.7260) (1.7, 4.3020) (1.8, 3.6200) (1.9, 3.1380) (2, 2.9920) (2.1, 2.5780) (2.2, 2.4340) (2.3, 2.1240) (2.4, 1.8760) (2.5, 1.7386) (3, 1.2880) (5, 1) (10, 1)};
199
200             \legend{$Gaussian (0.1)$,$Salt\&pepper (0.1)$,$Gaussian (0.25)$,$Salt\&pepper (0.25)$};
201         \end{axis}
202     \end{tikzpicture}
203 \\
204 \end{center}
205 \caption{Représentation du BER pour des attaques de type flou gaussien et
206 poivre et sel}\label{fig:pdf:atq:ber}
207 \end{figure}
208
209
210 \section{Conclusion}\label{pdf:s:conclusion}
211 Ce travail a présenté une démarche outillée
212 basée sur la Spread Transform Dither Modulation 
213 permettant d'embarquer une marque dans un document PDF.
214 Les éléments modifiés sont les abscisses des caractères présents 
215 dans le document.
216
217 Deux des propriétés essentielles des algorithmes de marquage ont été étudiées:
218 la transparence et la robustesse. La notion d'intervalle de distorsion 
219 acceptable a été définie et calculée sur un exemple jouet. 
220
221