Tatouage : application aux bases de données David Gross-Amblard 10 février 2004 Laboratoire Cedric, Conservatoire national des arts et métiers Transparents disponibles sur http://cedric.cnam.fr/ dgram Tatouage : application aux bases de données p.1/126
Plan du cours I Le tatouage de documents électroniques 1. Problématique et applications 2. Modèles 3. Caractérisation 4. Attaques courantes 5. Interprétation géométrique Tatouage : application aux bases de données p.2/126
Plan du cours II Tatouage par vectorisation et étalement de spectre 1.Principe 2.Algorithme 3.Analyse 4.Application aux images Tatouage : application aux bases de données p.3/126
Plan du cours III Tatouage des bases de données 1.Spécificités 2.Tatouage des poids faibles 3.Tatouage des distributions 4.Préservation de requêtes Méthode gourmande Méthode analytique IV (Autres données structurées) V Conclusion Autres directions Tatouage : application aux bases de données p.4/126
Bibliographie générale S. Katzenbeisser and F. A. P. Petitcolas, editors. Information hiding: techniques for steganography and digital watermarking. Computer security series. Artech house, 2000. I. J. Cox, M. L. Miller, and J. A. Bloom. Digital Watermarking. Morgan Kaufmann Publishers, Inc., San Francisco, 2001. Tatouage : application aux bases de données p.5/126
Bibliographie générale Julien P. Stern. Contribution à une théorie de la protection de l information. Thèse de doctorat, Paris XI, 2001. Caroline Fontaine. Contribution à la recherche de fonctions booléennes hautement non linéaires, et au marquage d images en vue de la protection des droits d auteurs. Thèse de doctorat, Paris VI, 1998. Tatouage : application aux bases de données p.6/126
Bibliographie pour les bases de données R. Agrawal and J. Kiernan. Watermarking Relational Databases. In VLDB, 2002. R. Sion, M. Atallah and S. Prabhakar. Rights Protection for Relational Data. In SIGMOD 2003. S. Khanna and F. Zane. Watermarking maps: hiding information in structured data. In SODA, 2000. D.. Gross-Amblard. Query-preserving watermarking of relational databases and XML documents. In PODS, 2003. Tatouage : application aux bases de données p.7/126
I. Le tatouage de documents électroniques Tatouage : application aux bases de données p.8/126
I.1 Problématique Documents électroniques : copie illicite et diffusion massive très simple Problème : protection de la propriété intellectuelle ou industrielle Tatouage (watermarking) : altération volontaire et imperceptible d un document afin d y insérer une information le concernant Exemple dissimuler l identité de l auteur dans le document copie suspecte : preuve de propriété Tatouage : application aux bases de données p.9/126
I.1 Cadre général eux algorithmes : Le marqueur altère le document par insertion d une marque Le détecteur vérifie la présence de la marque lusieurs modèles d échange Un à plusieurs propriétaires Plusieurs clients (Tier de confiance) odèle d adversaire Tentative de suppression de la marque Nouvelle alteration du document Tatouage : application aux bases de données p.10/126
I.1 Premier modèle d échange serveur serveur suspect copie illicite marqueur document original document tatoué detecteur A A A distorsion Tatouage : application aux bases de données p.11/126
I.1 Altération du document Le document doit être altéré : perte de qualité tatouage sémantique : modifie le contenu du document tatouage syntaxique : modifie le format de stockage Cette altération doit préserver l utilisabilité du document (valeur) Idem pour une attaque éventuelle Altération du tatouage et de l attaque limitées marque très présente : baisse de qualité, grande robustesse attaque par altération forte : baisse de qualité, grande chance de succès Tatouage : application aux bases de données p.12/126
I.1 Applications Surveillance d un flux de diffusion Identification du propriétaire Preuve de propriété Suivi de transactions Authentification Contrôle de la copie Insertion de méta-données Tatouage : application aux bases de données p.13/126
I.1 Notation P, le propriétaire D, un document (cover work) D 0, le document original de P Tatouage : application aux bases de données p.14/126
I.1 Surveillance d un flux de diffusion Contexte : P paye pour faire diffuser son document D 0 (ex. publicité) Objectif : vérifier automatiquement que la diffusion a lieu Méthode : insérer une marque dans l original détecter automatiquement sa présence lors de la diffusion Exemple : compter les diffusions Tatouage : application aux bases de données p.15/126
I.1 Identification du propriétaire Contexte : P a un droit sur un document D 0 Objectif : l utilisateur veut trouver P à partir du document (éventuellement altéré) Méthode : insérer une marque dans le document, contenant l identité du propriétaire l utilisateur extrait cette marque pour contacter le propriétaire Exemple : Digimarc dans Adobe Photoshop Tatouage : application aux bases de données p.16/126
I.1 Preuve de propriété Contexte : protéger les droits de P : une entreprise/un auteur la licence d un logiciel (GPL) Objectif : pouvoir prouver devant un tribunal que D appartient à P Méthode : insérer une marque dans le document le propriétaire est le seul à pouvoir faire accepter le document par le détecteur Tatouage : application aux bases de données p.17/126
I.1 Suivi de transactions Contexte : P vend D 0 à plusieurs acheteurs Objectif : identifier un revendeur malhonnête Méthode : insérer différentes marques, chaque marque identifiant un acheteur documents D 0 D 1, D 2,..., D k pour k acheteurs traitor tracing, fingerprinting Tatouage : application aux bases de données p.18/126
I.1 Authentification du contenu Contexte : transmission d un document Objectif : vérifier si le contenu à été modifié Méthode : la marque contient une signature digitale Tatouage : application aux bases de données p.19/126
I.1 Contrôle de la copie Contexte : P vend des documents utilisables par un matériel donné Objectif : limiter (au niveau matériel) la diffusion de données copiées Méthode : la marque est dans le document diffusé. Chaque matériel possède le détecteur si la marque est présente, le matériel fonctionne copie illicite : moindre qualité, la marque disparaît le matériel refuse de fonctionner utilisation d une marque fragile Tatouage : application aux bases de données p.20/126
I.1 Insertion de méta-données Contexte : canal de transmission existant Objectif : faire transiter de l information non prévue dans ce canal Méthode : la marque véhicule cette information de façon imperceptible Tatouage : application aux bases de données p.21/126
I.1 Relations avec autres domaines atouage, similarité avec/utilise des techniques de : Cryptographie : contenu caché Une fois décodé (légitimement), le document n est plus protégé Non robuste aux altérations Stéganographie : communication cachée contenu sans rapport avec le document support Tatouage : application aux bases de données p.22/126
I.1 Relations avec autres domaines Stéganographie Communication cachée, dans un document sans référence au document Marque invisible Marque invisible cryptée Watermarking Marque visible communication cachée, contenu crypté Marque visible, cryptée Protection d information applications cryptographiques. Tatouage : application aux bases de données p.23/126
I.2 Modèle Document : D {O, 1} Document original D 0 Qualité d un document? Oracle : O : {0, 1} {0, 1} {0, 1} O(D, D ) = 1 "D et D ont même qualité" Multimédia : O, critères psycho-perceptifs BD : définition formelle de O Tatouage : application aux bases de données p.24/126
I.2 Modèle Algorithme de marquage : paire d algorithmes (M, D) Marqueur : M : {0, 1} {0, 1} {0, 1} M(D, I) = D D : document tatoué I : infomation supplémentaire Tatouage : application aux bases de données p.25/126
I.2 Modèle Détecteur : D : {0, 1} {0, 1} {0, 1} D, document suspect D(D, I ) = 1 détection positive I information supplémentaire (= I ou I) Tatouage : application aux bases de données p.26/126
I.2 Modèle ropriété fondamentale : Correction : D, I D(M(D, I), I) = 1 Imperceptibilité : D, I O(D, M(D, I)) = 1 Tatouage : application aux bases de données p.27/126
I.2 Modèle : attaques Attaque : transformation T : {0, 1} {0, 1} T(D ) = D D, document attaqué Correction : D O(D, T (D)) = 1 Indétectabilité : D, I D(T (M(D, I)), I) = 0 Tatouage : application aux bases de données p.28/126
I.2 Modèle : attaques Succès d une attaque T pour document D : T correcte et indétectable Tatouage robuste contre T : Toute attaque correcte est détectable Objectif : trouver (M, D) robuste contre T Famille d attaque F = {T 1, T 2,... } Robustesse contre F : robustesse contre chaque T i Tatouage : application aux bases de données p.29/126
I.3 Caractéristiques du tatouage algorithme connu utilisation de clés secrètes détection aveugle ou informée efficacité du marqueur taux de faux témoins/faux rejets capacité Tatouages multiples Coût / Complexité Tatouage : application aux bases de données p.30/126
I.3 Connaissance de l algorithme marqueur ou détecteur secret algorithmes publiques Principe de Kerckhoffs Sécurité ne dépend que d une clé Tatouage : application aux bases de données p.31/126
I.3 Contenu de I : tatouage avec clé I et I : même clé privée, secrète, connue uniquement du propriétaire tatouage à clé publique : Seul le propriétaire tatoue avec la partie privée k, I = k D autres personnes peuvent détecter, avec la partie publique p, I = p Tatouage : application aux bases de données p.32/126
I.3 Détecteur informé/aveugle Détecteur informé : I = (k, D 0, M) plus facile (soustraction original, marque seule) preuve de propriété Détecteur semi-informé : I = (k, D 0 ) Détecteur aveugle : I = k sans original : plus difficile, mais parfois nécessaire contrôle de copie, original gigantesque ou changeant Tatouage : application aux bases de données p.33/126
I.3 Cadre probabiliste Tatouage robuste contre T : Toute attaque correcte est détectable : trop difficile D = M(D, I) O(D, T (D )) = 1 D(T (D ), I) = 1 "Relaxation" probabiliste du problème Distribution sur documents, marques, attaques Tatouage : application aux bases de données p.34/126
I.3 Efficacité du marqueur Probabilité de la correction du marqueur Efficacité = P D =M(D,I)[D(D, I) = 1] idéal : 100 % pas toujours possible Tatouage : application aux bases de données p.35/126
I.3 Taux de faux témoins D 0 document original, A, modification aléatoire taux faux témoins = P D =D 0 +A[D(D, I) = 1] 10 6 pour preuve de propriété (détecteur peu utilisé) 10 12 pour contrôle de copie (détecteur utilisé pour chaque image d un DVD) Tatouage : application aux bases de données p.36/126
I.3 Taux de faux rejets D = D 0 + M document tatoué, A, modification aléatoire taux faux rejets = P D =D +A[D(D, I) = 0] Succès de l attaque A Tatouage : application aux bases de données p.37/126
I.3 capacité l Nombre de bits dissimulés dans le document l = 1 bit : détecter l appartenance (oui/non) l = k bits : message de k bits (stéganographie) identifier 2 k acheteurs (fingerprinting) Attention : une marque de n bits peut être utilisée pour coder 1 bit de façon robuste Tatouage : application aux bases de données p.38/126
I.3 Tatouages multiples/modifiables Le système permet-il de mettre à jour la marque, de la modifier facilement Tatouage : application aux bases de données p.39/126
I.3 Coût / complexité Complexité en temps et espace de M et D preuve de propriété : peut être long contrôle de copie : doit être temps réel Tatouage : application aux bases de données p.40/126
I.4 Attaques courantes Attaque de présentation (scrambling) Distortions volontaires Désynchronisation Copie de tatouage Ambiguité Descente de gradient Collusion Tatouage : application aux bases de données p.41/126
I.4 Attaques courantes ttaque de présentation (scrambling) Séparer le document en sous-documents Ne change pas la présentation ex. mosaique d une image en HTML Détection automatique très difficile (...) Tatouage : application aux bases de données p.42/126
I.4 Attaques courantes istorsions volontaires Distorsions naturelles (traitement image) Distorsions volontaires Résistance : Où est la marque? Chance d inverser cette marque? Tatouage : application aux bases de données p.43/126
I.4 Attaques courantes ésynchronisation Déplacer les bits de la marque ex. suppression lignes, colonnes, mirroir ex. Stirmark Résistance : Resynchroniser avec original Données invariantes Tatouage : application aux bases de données p.44/126
I.4 Attaques courantes opie de tatouage : Supprimer le tatouage (...) Obtenir le tatouage par différence Ajouter ce tatouage dans autre document Rendre détecteur ou autre client suspects Résistance : cryptographie M =signature(d 0 ) M inadéquat pour autre document Tatouage : application aux bases de données p.45/126
I.4 Attaques courantes mbiguité Fonction d insertion I(D 0, M) = (D, M) inversible Fabriquer faux D 0, M tel que I(D 0, M ) = (D, M ) ex. M au hasard, et (D 0, M ) = I 1 (D, M ) Même arguments de propriétés pour (D 0, M) et (D 0, M ) Sécurité : Rendre I non inversible Comme précédement, M =signature(d 0 ) Tatouage : application aux bases de données p.46/126
I.4 Attaques courantes escente de gradient Attaquant possède un détecteur donnant une valeur Perturbation guidée par diminution Sécurité zone de détection à valeur non monotone Tatouage : application aux bases de données p.47/126
I.4 Attaques courantes ollusion Pour fingerprinting de t clients Collusion de k < t clients Comparaison de leur copies respectives Localisent la marque Sécurité : Codes anti-collusions Tatouage : application aux bases de données p.48/126
I.5 Interprétation géométrique d(d, D ) : distance/similarité entre D et D Pour d max, distorsion maximale autorisée, on souhaite, D d(d 0, D ) d max Tatouage : application aux bases de données p.49/126
I.5 Interprétation géométrique C : ensemble des documents (cover works) région acceptable par rapport à D 0 : région de détection : région de marquage : {D C : d(d 0, D) d max } {D : D(D, I) = 1} {D : D 0, I D = M(D 0, I)} Tatouage : application aux bases de données p.50/126
I.5 Interprétation géométrique Espace des documents Région de détection D 0 Région des distorsions acceptables Possibles versions marquées de D 0 Tatouage : application aux bases de données p.51/126
I.5 Interprétation géométrique Espace des documents Région de détection attaque par effacement D 0 marquage Tatouage : application aux bases de données p.52/126
II. Tatouage par étalement de spectre Tatouage : application aux bases de données p.53/126
II.1 Principe général [Cox, et al., 1995][Hartung et Girod, 1997] Tatouage de données tatouage d un vecteur réel vectorisation Utilisation de l aléa ajouter aléa avec distribution connue détection par corrélation Choix de l espace de tatouage Méthode indépendante du type de données Tatouage : application aux bases de données p.54/126
II.1 Vectorisation : dépend de la données Associer à D un vecteur de R n V : {0, 1} R n V(D) = C Associer à vecteur tatoué C un D R : R n {0, 1} R( C ) = D V, R bijections réciproques (pas toujours) ex. V petit sous-ensemble de D, R nécessite information exterieure (D 0 ) Tatouage : application aux bases de données p.55/126
II.1 Hypothèses distance d sur R n La proximité au sens de l oracle doit correspondre à une proximité dans l espace des vecteurs D et D tq. O(D, D ) = 1 V(D) et V(D ) sont proches Tatouage : application aux bases de données p.56/126
II.2 Tatouage par étalement de spectre. Initialisation on fixe α, "force du tatouage" on fixe β, seuil de détection (0 < β < 1) I. Vectorisation C = V(D 0 ) = (c 1,..., c n ) Tatouage : application aux bases de données p.57/126
II.2 Tatouage par étalement de spectre. Tatouage (indépendant du type de données) Marque W = (w 1,..., w n ) w i tirés selon loi normale, moyenne 0, variance α 2 Vecteur tatoué C = C + W. Reconstruction D = R( C ), donnée tatouée N (O, α) Tatouage : application aux bases de données p.58/126
II.2 Détection associée. Vectorisation D, donnée suspecte (attaquée?) I. Détection Corrélation linéaire D ( F ) = F = V( D) Q = F. W nα 2 { 1 si Q > β 0 sinon Tatouage : application aux bases de données p.59/126
II.2 Résumé Tatouage des vecteurs : paire (M es, D es ) M(D, I) = R(M es (V(D), I)) D(D, I ) = D es (V(D ), I ) I = I = k, clé secrète graine pour générateur pseudo-aléatoire de W tatouage aveugle, avec clé secrète Tatouage : application aux bases de données p.60/126
II.3 Analyse de sécurité ypothèses C bornée : i, c i γ attaque : F = V( D) = C + E E bornée : i, e i δ C, E indépendants de W Tatouage : application aux bases de données p.61/126
II.3 Analyse de sécurité F Q =. W nα 2 n i=1 = f i.w i nα 2 n i=1 = (c i + w i + e i ).w i nα 2 n i=1 = c n i.w i i=1 nα 2 + w2 i nα 2 + = I + M + A n i=1 e i.w i nα 2 Tatouage : application aux bases de données p.62/126
II.3 Analyse de sécurité Q Non marquée marquée non attaquée I I+M attaquée I+A I+M+A Tatouage : application aux bases de données p.63/126
II.3 Analyse de sécurité oi normale N (µ, α) : f(x) = 1 (x µ)2 e 2α 2 2πα 2 1.2 1 0.8 0.6 0.4 0.2 0-4 -2 0 2 4 6 8 10 Bonne approximation de la loi binomiale (discrète, bornée) µ = 0 et σ = 1 : centrée réduite Somme de loi normales indépendantes : loi normale Somme du carré de n lois normales indépendantes centrées réduites : loi du χ 2 n Tatouage : application aux bases de données p.64/126
II.3 Etude de M E(M) = 1 nα 2 = 1 nα 2 = 1 nα 2 n i=1 M = w2 i nα 2 n E(wi 2 ) i=1 n i=1 = χ2 n n E(w 2 i ) E(w i ) 2 car E(w i ) = 0 n α 2 = 1 i=1 Tatouage : application aux bases de données p.65/126
II.3 Etude de M Ecart à la moyenne d un loi χ 2 n (1) P[χ 2 n < n y] 1 2y π e y2 (pour 2 y n, n 12 pair ) P[1 M > t] 1 2 n(1 1 t) π e1 1 t 2 Tatouage : application aux bases de données p.66/126
II.3 Etude de A et I A = P n i=1 e iw i nα 2, loi normale E(A) = E( n i=1 e iw i ) nα 2 n i=1 = E(e iw i ) nα 2 n i=1 = E(e i)e(w i ) nα 2 = 0 par indépendance dem pour I. Tatouage : application aux bases de données p.67/126
II.3 Etude de A et I dem pour I. var(a) = E( n i=1 e iw i ) 2 n 2 α 4 = α2 n i=1 e2 i n 2 α 4 = E 2 n 2 α 2 δ2 n 2 α 2 Tatouage : application aux bases de données p.68/126
II.3 Analyse de A et I onclusion : A = E nα I = C nα N (0, 1) N (0, 1) Tatouage : application aux bases de données p.69/126
II.3 Analyse des attaques Faux témoins : détecter une donnée non marquée P ft = P(I + A > β) Faux rejets : ne pas détecter une donnée marquée P fr = P(I + M + A β) Tatouage : application aux bases de données p.70/126
II.3 Faux témoins our n a I + A = C + E nα r = α γ + δ P ft e β2 r 2 n 2 N (0, 1) Tatouage : application aux bases de données p.71/126
II.3 Faux rejets on cherche P(I + A + M < β) P fr e (1 β)2 r 2 n 2(1+ 2r) 2 Pour avoir P fr = P ft, on prend β = 1 2 + 2r P ft = P fr P 0 = e r2 n 2(2+ 2r) n 0, taille du vecteur nécessaire n 0 > 2(2 + 2r) r 2 log 1 P 0 Tatouage : application aux bases de données p.72/126
II.3 Tailles minimales 1 r /P O 2 10 2 20 2 30 2 40 2 50 100 562387 1124775 1687163 2249550 4499100 50 142578 285156 427734 570313 1140626 10 6357 12714 19061 25428 50856 5 1806 3612 5418 7224 14449 1 161 323 485 646 1293 r = α γ + δ α, force du tatouage γ, borne du vecteur initial δ, borne de l attaque Tatouage : application aux bases de données p.73/126
II.3 Caractéristiques du tatouage algorithme connu utilisation de clés secrètes détection aveugle efficacité du marqueur : > 1 P 0 taux de faux témoins/faux rejets < P 0 capacité : 1 bit Tatouages multiples? Coût / Complexité : linéaire en +, Tatouage : application aux bases de données p.74/126
II.3 Résistance Attaque de présentation (scrambling) non Distortions volontaires Désynchronisation non Copie de tatouage, clé bien choisie Ambiguité, idem Descente de gradient non Collusion (sans objet) Tatouage : application aux bases de données p.75/126
II.4 Application aux images image originale image tatouée Tatouage : application aux bases de données p.76/126
II.4 Application aux images riginal image tatouée éférence=f(clé secrète) Tatouage : application aux bases de données p.77/126
II.4 Attaque d un couple bavarois attaque par attaque par attaque par changement jpeg 10%, smoothing 0% rotation d échelle marque toujours présente? Tatouage : application aux bases de données p.78/126
II.4 Choix du site de dissimulation Vectorisation Domaine spatial (x,y) Transformée de Fourier discrète Transformée en cosinus discrète (DCT) Transformée Mellin-Fourier Résistance/intérêt Bruit aléatoire Fréquences adéquates pour compromis visibilité/robustesse Stable par compression JPEG et MPEG Invariance par translation, rotation, zoom Tatouage : application aux bases de données p.79/126
III. Tatouage de bases de données Tatouage : application aux bases de données p.80/126
III.1 Mais comment tatouer ceci? Alpiniste(nom,sommet,temps) Hillary Everest 145h Tenzin Everest 145h Paccard Mont Blanc 22h Lachenal Anapurna 210h Messner Everest 67h Janin Gasherbrum II 97h Messner Nanga Parbat 80h Messner Gasherbrum II 81h Sommet(nom,altitude) Everest 8848m Mont Blanc 4807m Anapurna 8078m Gasherbrum II 8035m Nanga Parbat 8125m K2 8611m Tatouage : application aux bases de données p.81/126
III.1 Spécificités Images (multimédia) Bases de données, Xml Peu de structure Très structuré : - schéma - types - clés primaires :(nom,sommet) Document unique Collections de lignes (Toctet) Utilisation unique Interrogations variées langage de requêtes Qualité psycho-perceptive Critères formels (ex. géographie) Document fixe Mises à jour Tatouage : application aux bases de données p.82/126
III.1 Hypothèses usuelles pour BDs onnées Toute table possède une clé primaire (principe BD) Existence de données modifiables (ex. numérique) temps Tatouage par altération des données modifiables 5h de variation tolérable sur le temps ttaques Les attaques conservent les clés (raisonnable pour clé ayant une sémantique précise identifiant abstrait) ex. Perturbations aléatoires, suppressions de lignes,... Tatouage : application aux bases de données p.83/126
III.1 Lieu du tatouage : Alpiniste Alpiniste Alpiniste(nom,sommet,temps) Hillary Everest 145h Paccard Mont Blanc 22h Lachenal Anapurna 210h Tenzin Everest 145h Messner Everest 67h Janin Gasherbrum II 97h Messner Nanga Parbat 80h Messner Gasherbrum II 81h Alpiniste (nom,sommet,temps) Hillary Everest 143h Paccard Mont Blanc 21h Lachenal Anapurna 212h Tenzin Everest 143h Messner Everest 65h Janin Gasherbrum II 98h Messner Nanga Parbat 75h Messner Gasherbrum II 82h Tatouage : application aux bases de données p.84/126
III.2 Tatouage des poids faibles [AK02] rincipe modifier les bits de poids faible n-uplet,attribut,et bit choisis en fonction de la clé primaire et de la clé secrète détection par corrélation linéaire sécurité : hachage paramétré par clé secrète Tatouage : application aux bases de données p.85/126
III.2 Sécurité Fonction de hachage H : {0, 1} {0, 1} t, t fixe, résultat entier à t bits Fonction de hachage non-inversible (one-way hash function) Calculer H(m) facile Pour un h, trouver m tq. H(m) = h difficile (recherche exhaustive) ex. MD5, SHA Rq. : les bits produits semblent aléatoires Tatouage : application aux bases de données p.86/126
III.2 Sécurité Code d authentification de message (MAC ou DAC) Hachage permettant d authentifier l emetteur du message Emetteur et recepteur possèdent une clé secrète k ex. : MAC k (m) = H(k m) Emetteur envoie (m, c) avec c = MAC k (m) Récepteur calcule MAC k (m) et compare avec c Seul l emetteur a pu construire un c correct Tatouage : application aux bases de données p.87/126
III.2 Tatouage des poids faibles ξ, le nb de bit de poids faible pouvant être modifiés ξ = 2 ici Tatouage(Alpiniste, k) : 1: for all (clé,temps) Alpiniste do 2: bit_index = MAC k (clé) mod ξ 3: Alpiniste.temps[bit_index] = MAC k (clé) mod 2 4: end for Détection(Alpiniste, k) : 1: for all (clé,temps) Alpiniste do 2: bit_index = MAC k (clé) mod ξ 3: if Alpiniste.temps[bit_index] = MAC k (clé) mod 2 then 4: match = match + 1 5: end if 6: end for 7: return (match/ Alpiniste > τ) Tatouage : application aux bases de données p.88/126
III.2 Analyse variables aléatoires de Bernouilli succès, probabilité p, échec 1 p b(k; n; p) : probabilité d avoir k succès parmi n tirages de variables de Bernouilli (avec probabilité p) b(k; n; p) = Cnp k k (1 p) n k Probabilité d avoir au moins k succès : B(k; n; p) = n i=k b(i; n; p) Tatouage : application aux bases de données p.89/126
III.2 Taux de faux témoins P 0 upposons Alpiniste = n un document aléatoire D Rq. bits de D et D indépendants En prenant P[> τ bits de D correspondent] = B(τ, n, 1 2 ) on a P[D, faux témoins] < P 0 τ = min τ [B(τ, n, 1 2 ) < P 0] Tatouage : application aux bases de données p.90/126
III.2 Robustesse : inversion de bits aléatoire Alpiniste = n Hypothèse : ξ connus de l adversaire Attaque : inversion aléatoire des ξ bits, pour N n-uplets Succès si inversion d au moins τ = n τ + 1 bits P[faux rejet] = ( n n n i ) i)( N i ( n N) i= τ Tatouage : application aux bases de données p.91/126
III.2 Robustesse Tatouage : application aux bases de données p.92/126
III.2 Caractéristiques du tatouage algorithme connu utilisation de clés secrètes détection aveugle efficacité du marqueur : 100% taux de faux témoins/faux rejets < P 0 capacité : 1 bits ou n bits (vote de majorité) Tatouages multiples? Coût / Complexité : linéaire en base Tatouage : application aux bases de données p.93/126
III.2 Résistance Attaque de présentation (scrambling) oui (clés) Distortions volontaires Désynchronisation oui (clés) Copie de tatouage Ambiguité Descente de gradient non Tatouage incrémental Collusion : avec codes anti-collusion Tatouage : application aux bases de données p.94/126
III.2 Résumé vantages Simple et rapide Dissimule 1 bit par ligne Distorsion des valeurs contrôlée par ξ remier inconvénient Poids faibles (LSB) peu robuste (abandonné pour images) Tatouage : application aux bases de données p.95/126
III.3 Tatouage des distributions [SAP03] Répartition secrète des lignes en blocs b 1,... b n Encodage : modification de la distribution des temps/bloc (Tenzin,Everest)(Hillary,Everest)(Paccard,Mt Blanc) C5 C6 C7... (Tenzin,Everest)(Paccard,Mt Blanc)(Hillary,Everest) C32 C54... Bloc 1 Bloc 2 Temps Détection : corrélation Tatouage : application aux bases de données p.96/126
III.4 Préservation de requêtes utre inconvénients de [AK02] Ne préserve pas de requêtes xemple de requêtes à préserver Ψ 1 : Le plus rapide par sommet Ψ 2 (a) : La moyenne des temps pour le sommet a ψ(a) select avg(temps) from Alpiniste where sommet=a Tatouage : application aux bases de données p.97/126
III.4 Modèle : 3 participants Propriétaire : vend une base de données Serveur de données : achète une base, répond à des requêtes ψ(.) Utilisateur final : pose des requêtes ψ(a) bjectif : tatouer en préservant la qualité des requêtes Tatouage : application aux bases de données p.98/126
III.4 Modèle : 3 participants utilisateurs serveur requetes requetes serveur suspect copie illicite marqueur base de données base tatouée detecteur A A. Tatouage : application aux bases de données p.99/126
III.4 Méthode gourmande [SAP03] Méthode gloutonne pour la préservation des requêtes Requêtes ψ 1,..., ψ k à préserver en entrée Tatouage (message w {0, 1} l ) 1: for all bloc b i do 2: encoder le ièmebit de w dans b i 3: if contraintes sur ψ 1,..., ψ k non satisfaites then 4: abandonner les changements de b i 5: end if 6: end for vantages : preserve n importe quelle propriété nconvénient : Force brute, n calculs de ψ 1,..., ψ k (sur beacoup de lignes) S il faut trouver plusieurs tatouages valides? Tatouage : application aux bases de données p.100/126
III.4 Fingerprinting serveur suspect copie illicite detecteur A distorsion probabilité serveur marqueur serveur marqueur base de données base tatouée A B B A Tatouage : application aux bases de données p.101/126
III.4 Méthode analytique Capacité : combien de tatouages différents peut-on trouver? roblème théorique : Quelle relation entre : la capacité la distorsion nécessaire l expressibilité du langage des requêtes à préserver Quels critères pour capacité garantie? pplication : Trouver rapidement beaucoup de tatouages distincts Tatouage : application aux bases de données p.102/126
III.4 Réduction à la programmation entière pb de tatouage programmation entière ex. modifier temps ±5, moyenne des temps sur Everest préservée t 1 = temps(t enzin), t 2 = temps(messner), t 3 = temps(hillary) { i 5 m i 5 t 1 + t 2 + t 3 ( (t 1 + m 1 ) + (t 2 + m 2 ) + (t 3 + m3) ) = 0 Maximiser dans une direction aléatoire Permet utilisation de résolveurs connus, grand nombre de variables Tatouage : application aux bases de données p.103/126
III.4 Restriction : requêtes stables Résultat avant et après tatouage est fonction des mêmes valeurs xemples, altération des temps Ψ 1 : temps minimal par sommet : pas stable Ψ 1 [Alpiniste] = temps(janin) Ψ 1 [Alpiniste ] = temps (Tenzin) Ψ 2 : La moyenne des temps pour le sommet a : stable Ψ 2 [Alpiniste](Gasher.) = temps(messner) + temps(janin) Ψ 2 [Alpiniste ](Gasher.) = temps (Messner) + temps (Janin) Tatouage : application aux bases de données p.104/126
III.4 Stabilité : matrice de dépendance marque : +1 +1-1 -1 valeurs v 1 w 2 w 3 w 4 ψ 1 0 0 1 1 ψ 2 1 1 0 1 ψ 3 1 0 0 1 distorsion -2 +1 0 Capacité : 2 l solutions, capacité de l bits Capacité croissante avec n =nb de valeurs disponibles Compromis entre distorsion d et capacité Schéma : capacité Ω(n 1 1 d ) avec distorsion d Tatouage : application aux bases de données p.105/126
III.4 Exemple valeurs w 1 w 2 w 3 w 4 w 5 w 6... w n ψ(a 1 ) 1 1 1 0 1 1... 0 ψ(a 2 ) 0 1 1 1 1 1... 1 ψ(a 3 ) 0 1 1 0 1 0... 0 ψ(a 4 ) 1 0 1 0 1 0... 0 ψ(a 5 ) 0 1 0 1 0 1... 0 Où disposer les distorsions? Trouver le nb de solutions : #P -complet Tatouage : application aux bases de données p.106/126
III.4 Pas de schéma, même pour requête triviale Si tous les sous-ensembles de valeurs sont définissables, pas de schéma. valeurs w 1 w 2 w 3... w n ψ(a 1 ) 1 0 0... 0 clé valeur ψ(a 2 ) 1 1 0... 0 ψ(a 3 ) 1 1 1... 0.................. ψ(a 2 n) 1 1 1... 1 G a 1 a2 a3 +1 +1 1. ψ(a) select valeur from G where G(a,valeur) Idée : Tatouer beaucoup de +1 Une requête avec paramètre a i dépend uniquement de ces +1 Grande distorsion sur cette requête ψ(a i ) Tatouage : application aux bases de données p.107/126
III.4 Schéma pour BD bornées, requêtes SQL BD de degré borné (ex. graphe de degré borné) ψ, formule SQL=F O : langage local dépend d un voisinage fini autour de a a, b voisinages isomorphes ψ(a)et ψ(b)dépendent presque des mêmes valeurs (à une constante près) nb de voisinages distincts constant a c b Tatouage : application aux bases de données p.108/126
III.4 Exemple valeurs w 1 w 2 w 3 w 4 w 5 w 6... w n ψ(a 1 ) 1 1 1 0 1 1... 0 ψ(a 2 ) 0 1 1 1 1 1... 1 ψ(a 3 ) 0 1 1 0 1 0... 0 ψ(a 4 ) 1 0 1 0 1 0... 0 ψ(a 5 ) 0 1 0 1 0 1... 0 Tatouage : application aux bases de données p.109/126
III.4 2 voisinages distincts, gadget (+1, 1) 1 2 2 1 2 marque: +1 1 +1 1 : 2 bits valeurs w 1 w 2 w 3 w 4 w 5 w 6... w n ψ(a 1 ) 1 1 1 0 1 1... 0 0 ψ(a 2 ) 0 1 1 1 1 1... 1 ψ(a 3 ) 0 1 1 0 1 0... 0 ψ(a 4 ) 1 0 1 0 1 0... 0 ψ(a 5 ) 0 1 0 1 0 1... 0 0 c c c O(n) bits avec distorsion constante c = f(degré) Positions au hasard: Ω(n 1 1 d ) bits avec distorsion d Tatouage : application aux bases de données p.110/126
III.4 Application our ψ 1,..., ψ k à preserver (n lignes, grand) 1. Détecter les requêtes stables 2. Calculer la matrice de dépendance 3. Trouver les paires famille de tatouages valides 4. Méthode gourmande pour autres requêtes our O(n t ) par requêtes, trouver T tatouages : Si toutes stables, temps O(k.n t + T.n) (SAP03) : temps O(T.k.n t+1 ) Tatouage : application aux bases de données p.111/126
III.4 Xml Modifier les éléments identifiables du documents Utilisation des clés (Xsd) Même technique que BD Préservation de requêtes Xpath, Xquery district name="california"> <beach> <name>la Jolla</name> <temperature>26 C</temperature> </beach> <beach>... <beach>... /district>... Tatouage : application aux bases de données p.112/126
III.4 Schéma pour Xml, langage Xpath ψ(c) //district[name=c]/beach/temperature Xpath logique monadique du second ordre (M SO) Logique non locale ψ(a, c) MSO : ensemble des température a pour district c Th. ψ(a, c) MSO automate d arbre Tatouage : application aux bases de données p.113/126
III.4 Exemple Xpath automate d arbre automate fini a, b tq. automate termine dans le même état etat 5 automate accepte (a, c) automate accepte (b, c) a b c Similitudes dans la matrice de dépendance matrice de dépendance etc. Tatouage : application aux bases de données p.114/126
III.4 Résumé ésumé données requêtes capacité complexité AK03 BD non n n SAP03 BD toute inconnue T.k.n t+1 GA03 borné/xml Sql/Xpath n 1 1 d k.n t + T.n rototype Watermill [avec C.Constantin et M.Guerrouani] cedric.cnam.fr/~dgram/watermill Tatouage : application aux bases de données p.115/126
IV. Autres données structurées Tatouage : application aux bases de données p.116/126
IV.1 Tatouage de cartes [KZ00] Données : graphe connexe valué. Requête d(a, b) : longueur plus court chemin entre a et b. l existe un couple marqueur/détecteur avec : capacité n 1 1 2 d bits (n, nb arêtes) distorsion d sur toute requêtes d(.,.) résistant aux attaques aléatoires. Tatouage : application aux bases de données p.117/126
IV.1 Principe v un grand plus court chemin 1 0 0 u +1 1 1 +1 1 +1 v distorsion 0 sur d(u, v) Tatouage : application aux bases de données p.118/126
IV.1 Principe u v u +1 1 1 +1 1 +1 v distorsion < 2 pour tout d(u, v ) u v Tatouage : application aux bases de données p.119/126
IV.1 Principe Si u, v, u v "petits" plus courts chemins Perturbations au hasard suffisent ccès indirect : même résultats pour : Accès aux longueurs d arêtes Accès aux longueurs de chemins (aggrégats) Accès aux itinéraires, sans longueurs Tatouage : application aux bases de données p.120/126
IV.2 Tatouage de la programmation entière (IP) [Megerian,Drinić,Ptokonjak,2002] IP : { max n a i.x i i=1 C i : n i j=1 a ij.x i b i x i entiers Très nombreuses applications (logistique, VLSI, etc.) NP-complet Objectif : tatouer la solution Tatouage : application aux bases de données p.121/126
IV.2 Exemple sur SAT Instance SAT Instance IP correspondante 21 solutions possibles (x 1 x 2 x 3 ) (x 4 x 5 ) max x 1 + x 2 + x 3 1 x 4 + x 5 1 x i 1 x i 0 Tatouage : application aux bases de données p.122/126
IV.2 Tatouage Principe : choisir une solution particulière Solution suspecte : pourquoi identique à la notre? Ex. dissimuler "10010" max x 1 x 2 x 3 + x 4 x 5 x 1 + x 2 + x 3 1 x 4 + x 5 1 x i 1 x i 0 1 solution distinguée parmi 21 Rq : difficile de trouver une autre solution! Cas réels : 10 4 variables Tatouage : application aux bases de données p.123/126
Conclusion Tatouage : application aux bases de données p.124/126
Tatouage Nombreuses techniques pour multimédia Quelques techniques pour données structurées (BD, Xml, code) Pas encore de standard Robustesse < cryptographie Difficile pour adversaire naïf Tatouage : application aux bases de données p.125/126
Perspectives Autres requêtes, données géométriques Services web Incrémentalité de la préservation de requêtes? Capacité d autres structures combinatoires (pb. optimisations) Progrès théoriques : tatouage et complexité Tatouage : application aux bases de données p.126/126