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
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
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.
22 Ce chapitre présente une application de STDM au marquage de documents PDFs.
25 \section{Rappels sur la Spread Transform Dither Modulation}
27 Les paramètres de ce schéma sont
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;
36 d_0 + \Delta/2, & \textrm{ si }~~d_0<0 \\
37 d_0 - \Delta/2, & \textrm{ sinon }
40 \item un nombre $L$ d'éléments dans lequel chaque bit de la marque
42 \item un vecteur $p$ de projection de taille $L$.
46 Soit donc $x$ un vecteur de taille $L$ dans lequel on souhaite embarquer
48 Ce vecteur est remplacé par $x'$ défini par
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
54 Avec les mêmes paramètres $\Delta$, $d_0$ , $L$ et $p$ le message
56 $x'$ de taille $L$ est défini par:
58 \hat{m} = arg \min_{ m \in \{0, 1\}} \mid x'^T p - f(x,m) \mid
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
66 Tous les éléments sont en place pour embarquer une marque
67 dans un fichier PDF selon le schéma STDM.
69 \section{Application au marquage de documents PDF}
71 On détaille successivement comment insérer une marque dans un document PDF,
72 puis comment l'extraire.
74 \subsection{Insertion de la marque}
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
81 On considère comme fixés les paramètres
82 $\Delta$, $d_0$ , $L$ et la manière de construire le vecteur $p$
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$.
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]$.
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}$.
106 \item L'abscisse de chaque caractère est ainsi redéfini
107 selon le nouveau vecteur de positions ${x'}$.
110 Voyons comment extraire une marque d'une document PDF.
112 \subsection{Extraction de la marque}
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
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.
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]$.
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'}$ .
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]$.
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é.
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
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.
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)};
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)};
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)};
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)};
200 \legend{$Gaussian (0.1)$,$Salt\&pepper (0.1)$,$Gaussian (0.25)$,$Salt\&pepper (0.25)$};
205 \caption{Représentation du BER pour des attaques de type flou gaussien et
206 poivre et sel}\label{fig:pdf:atq:ber}
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
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.