En étudiant les schémas de watermarking,
nous avons constaté que très peu de travaux ciblaient les documents PDF
qui représentent cependant une part non anecdotique des données
échangées en ligne.
Parmi ces travaux, \cite{PD2008} propose la modification du nombre 
d'espaces entre les mots ou entre les paragraphes.
Similairement, les auteurs  de~\cite{DBLP:journals/sigpro/LeeT10}
ajoutent des caractères invisibles dans le document.
En supprimant ces espaces ou caractères invisibles, la marque s'enlève
facilement.
Dans~\cite{PD2008}, les auteurs modifient de manière imperceptible
le positionnements des caractères. D'autres éléments de postionnement
sont intégrés dans~\cite{WT08}.
Une attaque qui remodifierait  aléatoirement de manière faible ces positions
 détruirait la marque dans les deux cas.
La quantification (au sens du traitement du signal) est une réponse
à ces attaques: des positions modifiées de manière mal intentionnée  
peuvent grâce cette démarche être rapprochées (abstraites) en des positions
préétablies et conserver ainsi leur information et donc la marque.
STDM~\cite{CW01} est une instance de ces schémas de marquage.

Ce chapitre présente une application de STDM au marquage de documents PDFs.
\JFC{annonce du plan}

\section{Rappels sur la Spread Transform Dither Modulation}
\label{sec:STDM}
Les paramètres de ce schéma sont
\begin{itemize}
\item le facteur de quantification $\Delta$ qui est un réel positif; plus $\Delta$
est grand, plus la distortion peut être importante;
\item le niveau d'indécision  $d_0$ qui est un réel dans
$[-\dfrac{\Delta}{2},\dfrac{\Delta}{2}]$; plus ce nombre a une valeur absolue
élevée, plus les erreurs peuvent être corrigées;
on définit $d_1$ par 
$$d_1 = \begin{cases} 
  d_0 + \Delta/2, & \textrm{ si }~~d_0<0 \\  
  d_0 - \Delta/2, & \textrm{ sinon } 
\end{cases}
$$
\item un nombre $L$ d'éléments dans lequel chaque bit de la marque 
  est embarqué;
\item un vecteur $p$ de projection de taille $L$. 

\end{itemize}

Soit donc $x$ un vecteur de taille $L$ dans lequel on souhaite embarquer 
le bit $m\in\{0,1\}$. 
Ce vecteur est remplacé par $x'$ défini par 
 
\begin{equation}\label{eq:stdm}
x' = f(x,m) = x+ ((\lfloor(\frac{(x^T p) -d_m}{\Delta})\rfloor\Delta +d_m )~ - x^T p)p
\end{equation}

Avec les mêmes paramètres $\Delta$, $d_0$ , $L$ et $p$ le message 
$\hat{m}$ extrait de 
$x'$ de taille $L$ est défini par:
\begin{equation}\label{eq:stdm:ext}
\hat{m} = arg \min_{ m \in \{0, 1\}} \mid x'^T p - f(x,m) \mid
\end{equation}

Les auteurs de~\cite{CW01} ont montré que la variance de l'erreur 
est égale à $\Delta^2/12L$ 
lorsque chacun des $L$ éléments de $x$ suit une ditribution uniforme 
$U(\Delta)$. 
Tous les éléments sont en place pour embarquer une marque 
dans un fichier PDF selon le schéma STDM.

\section{Application au marquage de documents PDF}

On détaille successivement comment insérer une marque dans un document PDF, 
puis comment l'extraire.

\subsection{Insertion de la marque}

On cherche à ajouter à un document PDF une marque $m$ de $k$ bits 
déjà codée (cryptée, correction d'erreurs incluse). 
L'insertion de celle-ci dans le document s'effectue 
en quatre étapes.

On considère comme fixés les paramètres  
$\Delta$,  $d_0$  et la manière de construire le vecteur $p$ pour une taille 
$L$. 


\begin{enumerate}
\item Le vecteur hôte $x$ de taille $N$ 
  est constitué de l'abscice (flottante) 
  de chaque caractère rencontré dans le document PDF. 
  La dimension $L$ est calculée comme la partie entière de $N/k$.

\item Un générateur pseudo aléatoire (initialisé par une clef) 
construit $k$ ensembles $M_1$, \ldots, $M_k$ 
de taille $L$ mutuellement disjoints dans $[1,N]$. Ainsi 
$\bigcup_{1\le i \le k} M_i \subseteq [N]$. 


\item Pour chacun des ensembles $M_i$, $ 1 \le i \le k$, 
  de l'étape précédente,  le vecteur $\dot{x} = (x_{j_1}, \ldots ,x_{j_L})$,
  est construit où $\{j_1, \ldots, j_L\} = M_i$.
  Le vecteur $\dot{x'} = f(\dot{x},m_i)$ est
  construit selon l'équation~(\ref{eq:stdm}).
  Dans $x$, chacun des $x_{j_1}, \ldots, x_{j_L}$ est remplacé par 
  $\dot{x'}_{j_1}, \ldots, \dot{x'}_{j_L}$.

\item L'abscisse de chaque caractère est ainsi redéfini 
  selon le nouveau vecteur de positions ${x'}$. 
\end{enumerate}

Voyons comment extraire une marque d'une document PDF.

\subsection{Exctraction de la marque}

On considère comme connue la taille de la marque: c'est $k$ bits.
Les paramètres $\Delta$,  $d_0$ et la manière de construire 
$p$ en fonction de $L$ sont les mêmes qu'à l'étape précédente d'insertion de 
marque.

\begin{enumerate}
\item on récupère le vecteur $x'$ (de taille $N$ lui aussi) des abscices des
  caractères du document PDF comme dans la phase d'insertion. 
  la valeur de $L$ est définie comme précédement.

\item le même générateur pseudo aléatoire (initialisé avec la même clef) 
construit les $k$ mêmes ensembles $M_1$, \ldots, $M_k$ 
de taille $L$ mutuellement disjoints dans $[1,N]$. 

\item Pour chacun des ensembles $M_i$, $ 1 \le i \le k$, 
  de l'étape précédente,  le vecteur $\dot{x'} = (x'_{j_1}, \ldots, x'_{j_L})$,
  est construit où $\{j_1, \ldots, j_L\} = M_i$.
  Le bit $\hat{m}_i$  est défini selon l'équation~(\ref{eq:stdm:ext})
  en remplaçant $x'$ par $\dot{x'}$ .
\end{enumerate}

\section{Choix des paramètres}
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$. 
Les travaux réalisés se sont focalisés sur l'influence du paramètre 
$\Delta$ dans l'algorithme.

