From: couchot Date: Wed, 14 Sep 2016 11:26:03 +0000 (+0200) Subject: dff X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/hdrcouchot.git/commitdiff_plain/0d1c31c9837325e2dad26554c2cde3a457455158?ds=inline dff --- diff --git a/intro.tex b/intro.tex index 90611ec..9ddd63c 100644 --- a/intro.tex +++ b/intro.tex @@ -1,16 +1,77 @@ - -Introduire mathématiques discrètes +% Modèles discrets pour la sécurité inforamtique: des méthodes itératives à l'analyse vectorielle -Systèmes dynamiques discrets +Les informations traitées par un ordinateur ne sont, \textit{in fine}, +que discrètes: les flottants (sur un nombre fini de bits) sont une +interprétation des réels, les \textit{longs} une interpréation finie +des entiers\ldots. +Les phénomènes physiques ou naturels peuvent aussi être modélisés par des +approches discrètes: +il n'est parfois pas nécessaire de suivre exactement tous les états par +lesquels peut passer l'élément d'étude. Pour peu que l'on sache +identifier les seuils de son domaine (c'est-à-dire les valeurs +critiques permettant au système global de changer), +il est parfois suffisant de réduire le domaine de l'état de l'élément +à un ensemble fini d'intervalles définis par ces seuils. +Un élément passe d'un état $i$ à un état $j$ si dans la version continue il +passe d'un état de l'intervalle numéro $i$ à un état de l'intervalle numéro $j$. +En abstrayant à l'extrême, +on peut considérer pour chaque élément seulement deux états: +1 pour le fait d'être présent et 0 pour le fait d'être absent, ou bien +1 pour le fait d'avoir une valeur supérieure à un seuil et 0 pour le fait qu'elle y soit inférieure. +Ces réseaux particuliers sont qualifiés de \emph{réseaux booléens}. -convergence vs divergence -chaos <=> aléa +Soit ${\mathsf{N}}$ un entier naturel représentant le nombre +d'éléments étudiés (le nombre bits qu'un générateur veut engendrer, +le nombre de pixel que l'on veut modifier\ldots) un réseau booléen est +défini à partir d'une fonction booléenne $f:\Bool^{\mathsf{N}}\to\Bool^{\mathsf{N}}$ +et un mode de mise à jour. +A chaque étape, on peut intuitivement ne modifier qu'une partie des +$\mathsf{N}$ éléments. +En fonction des élements qui sont susceptibles d'être modifiés à chaque étape, +on peut se poser les questions de savoir si le réseau atteint un point fixe (ét qu'il peut donc converger) ou +s'il possède des attracteurs cycliques (et qu'il diverge donc). -PRNG +Détecter la convergence ou son contraire peut se faire \textit{ a priori} dans +certain cas. En effet, de nombreux travaux ont énoncé des conditions +suffisantes sur les réseaux bouléens garantissant leur convergence +ou leur divergence . Lorsqu'aucune d'entre elle ne s'applique, on peut penser +à étendre ces résultats théoriques et compléter ceci par des simulations. +Lorsque la convergence est pratiquement observée, il reste à vérifier que +celle-ci est indépendante du choix des parties à modifier, par exemple. +Une vérification \textit{a posteriori} s'impose, sauf si la méthode de +simulation a été prouvée comme exhaustive. -codes de Gray +Une fonction qui admet un attracteur cyclique égal à l'ensemble +des sommets diverge. Admet-il cependant un comportement chaotique? +Les théories mathématiques du chaos ont énoncé des critères permettant +de décider si une fonction est chaotique ou non, et plus récemment +si certains réseaux bouléens étaient l'étaient. Se pose légitimement +la question de savoir si cette caractérisation s'étend quelque soient +les parties modifiées à chaque étape. Naturellement, ceci n'a un sens +pratique que si le nombre de réseaux bouléens qui possèdent cette +caractéristique est suffisament grand et que l'on sache engendrer +algorithmiquement de tels réseaux. -générateur c Sécurité informatique: régularité -> marquage +Les liens entre chaos et aléas sont certes intuitifs, mais sont-ils suffisants +pour espérer construire un générateur de nombres pseudo-aléatoires (PRNG) +à partir de fonctions au comportement chaotique? La réponse est certes +positive, mais pas triviale. Il est nécessaire de définir les propriétés +attendues de la sortie d'un PRNG et +l'uniformité de sa distribution est sans doute la première +des propriétés à assurer. +Comment alors générer des fonctions chaotiques dont les itérations +peuvent converger vers une distribution uniforme? +Combien d'itérations suffit-il alors +d'effectuer pour s'approcher suffisament de celle-ci? -Dérivées partielles discrete pour la sétagno +Les liens entre chaos et marquage d'information sont aussi faciles à établir: +de tout média marqué même attaqué, la marque doit pouvoir être extraite. +Cette propriété du marquage est proche en effet de celle de régularité des opérateurs chaotique. Il est alors naturel d'envisager exploiter les +fonctions chaotiques extraites dans ce contexte et donc de modifier +certains bits d'un média pour y insérer de l'information: la marque. +On + +Les compétences acquise dans l'étude des algorithme d'insertion d'une marque +dans une image nous permettent aussi d'adresser le problème d'insérer un message dans une image, mais en priviligeant cette fois l'imperceptibilité et +non plus la robustesse. \ No newline at end of file diff --git a/main.tex b/main.tex index 94edfdb..9164d38 100644 --- a/main.tex +++ b/main.tex @@ -36,7 +36,7 @@ %%-------------------- %% Title of the document -\declarehdr{Title}{XX Mois XXXX} +\declarehdr{Modèles discrets pour la sécurité: des méthodes itératives à l'analyse vectorielle}{XX Mois XXXX} %%-------------------- %% Set the author of the HDR diff --git a/stabylo.tex b/stabylo.tex index 0e0775d..c08354a 100644 --- a/stabylo.tex +++ b/stabylo.tex @@ -1,4 +1,4 @@ -Dans cette partie, on s'intéresse toujours à la insérer un message dans +Dans cette partie, on s'intéresse toujours à insérer un message dans une image hôte. Si l'objectif des exemples précédents était de marquer l'hôte de manière robuste (et peu visible), c'est ici l'imperceptibilité qui est visée. diff --git a/stegoyousra.tex b/stegoyousra.tex index fdc3bf4..de9836b 100644 --- a/stegoyousra.tex +++ b/stegoyousra.tex @@ -4,7 +4,7 @@ ces fonctions de distorsion sont construites dans l'objectif de préserver les caractéristiques de l'images. On comprend aisément que dans des régions uniformes ou sur des bords clairement définis, une modification même mineure de l'image est facilement détectable. -Au contraire dans les textures, le bruit ou les régions chaotiques +Au contraire les textures, le bruit ou les régions chaotiques sont difficiles à modéliser. Les caractéristiques des images dont ces zones ont été modifiées sont ainsi similaires à celles des images initiales. @@ -17,17 +17,19 @@ pour les courbes de niveau. Pour peu qu'on sache définir une fonction $P$ qui associe à chaque pixel $(x,y)$ sa valeur $P(x,y)$, les pixels tels que les dérivées secondes de $P$ ont des valeurs élevées -sont des bon candidats pour contenir un bit du message. +sont des bons candidats pour contenir un bit du message. Cependant, une telle fonction $P$ n'est connue que de manière discrète, \textit{i.e.}, en un nombre fini de points. Les dérivées premières et secondes ne peuvent donc pas être évaluées mathématiquement. -Au mieux, on peut construire une fonction qui approxime ces $P$ sur cet ensemble +Au mieux, on peut construire une fonction qui approxime les +dérivées de $P$ sur cet ensemble de pixels. Ordonner alors les pixels selon la matrice hessienne (\textit{i.e.}, la matrice des dérivées secondes) n'est pas trivial puisque celle-ci contient de nombreuses valeurs pour un seul pixel donné. On verra dans ce chapitre comment des approximations des dérivées -premières et secondes pour des images numériques (Section~\ref{sec:gradient}) on peu être +premières et secondes pour des images numériques (Section~\ref{sec:gradient}) +ont pu être obtenues. Deux propositions de dérivées secondes sont ensuite données et prouvées (Section~\ref{sec:second} et Section~\ref{sec:poly}). @@ -72,7 +74,8 @@ plus le gradient varie en ce point. Évaluer ce type de matrice est ainsi primor en stéganographie. Cependant cette tâche n'est pas aussi triviale qu'elle n'y paraît puisque les images naturelles ne sont pas définies à l'aide de fonction différentiables de $\R^+\times \R^+$ -dans $\R^+$. La suite montre comment obtenir des approximations de telles matrices. +dans $\R^+$. +La suite montre comment obtenir des approximations de telles matrices. \subsection{Approches classiques pour évaluer le gradient dans des images}\label{sub:class:1} Dans ce contexte, les approches les plus utilisées pour évaluer un gradient @@ -82,13 +85,13 @@ Chacune de ces approches applique un produit de convolution $*$ entre un noyau $3\times 3$. Le résultat $A * K$ est une approximation du gradient horizontal \textit{i.e.}, $\dfrac{\partial P}{\partial x}$. -Soit $K\rl$ le résultat de la rotation d'un angle $\pi/2$ sur $K$. +Soit $K'$ le résultat de la rotation d'un angle $\pi/2$ appliquée à $K$. La composante verticale du gradient, $\dfrac{\partial P}{\partial y}$ est obtenue -de manière similaire en évaluant $A * K\rl$. Lorsqu'on applique ceci sur toute -la matrice image, on obtient peu ou prou une matrice de même taille pour chacune des +de manière similaire en évaluant $A * K'$. Lorsqu'on applique ceci sur toute +la matrice image, on obtient une matrice de même taille pour chacune des dérivées partielles. -Les deux éléments de la première ligne (respectivement de la seconde ligne) +Les deux éléments de la première colonne (respectivement de la seconde) de la matrice hessienne sont le résultat du calcul du gradient sur la matrice $\dfrac{\partial P}{\partial x}$ (resp. sur la matrice $\dfrac{\partial P}{\partial y}$). @@ -235,8 +238,8 @@ pour chacun des opérateurs de gradient rappelés à la section précédente. \end{table} -Le noyau $\textit{Ks}_{x^2}''$ permet de détecter si le le pixel central -pixel central appartient à une bord ``vertical'', même si celui contient du bruit, +Le noyau $\textit{Ks}_{x^2}''$ permet de détecter si le +pixel central appartient à un bord ``vertical'', même si celui contient du bruit, en considérant ces voisins verticaux. Ces derniers sont vraiment pertinents dans un objectif de détecter les bords. Cependant, leur lien avec les lignes de niveau n'est pas direct. De plus tous les pixels qui sont dans la @@ -291,7 +294,7 @@ Lorsque $n$ vaut 1, ce noyau est une version centrée du noyau horizontal de dif intermédiaires. $\textit{Ki}_{x^2}''$ à un facteur $1/2$ près). Lorsque $n$ vaut 2, on retrouve $\textit{Kc}_{x^2}''$. -Les variations verticales du gradient sont aussi obtenus en faisant subir +Les variations verticales du gradient sont aussi obtenues en faisant subir à $\textit{Ky}_{x^2}''$ une rotation d'angle $\pi/2$. Les variations diagonales sont obtenues à l'aide du gradient $\textit{Ky}_{xy}''$ défini par: @@ -397,7 +400,7 @@ L(x,y) = \right) \end{array} \end{equation} -On peut facilement prouver que les dérivées partielles de $L$ selon $x$ est +On peut facilement prouver que la dérivée partielle de $L$ selon $x$ est \begin{equation} \begin{array}{l} \dfrac{\partial L}{\partial x} = @@ -454,7 +457,7 @@ P(i,j) \label{eq:deriv:poly:yx} \end{eqnarray} Ces dérivées secondes sont calculées pour chaque pixel central, \textit{i.e.} le pixel dont l'indice est $(0,0)$ dans la fenêtre. -En considérant cette particularisation, l'équation~(\ref{eq:deriv:poly:x2}) peut +En considérant cette particularisation, l'équation~(\ref{eq:deriv:poly:x2}) se simplifie en \begin{equation} @@ -615,7 +618,7 @@ le niveau de sécurité. Pour chaque approche, 1,000 images stégos avec $N=2$, $4$, $6$, $8$, $10$, $12$ et $14$ et dont les supports appartiennent à l'ensemble des 10000 images du challenge BOSS. -LA sécurité de l'approche a été évaluée avec le stéganalyseur +La sécurité de l'approche a été évaluée avec le stéganalyseur Ensemble Classifier~\cite{DBLP:journals/tifs/KodovskyFH12}. Pour un taux d'embarquement $\alpha$ égal soit à $0.1$ ou soit à $0.4$, l'erreur moyenne de test (exprimée en pourcentage) a été calculée.