• Aucun résultat trouvé

Formalisme et codes sˆ urs contre des coalitions

4.4 Codes r´esistants ` a des coalitions

4.4.2 Formalisme et codes sˆ urs contre des coalitions

4.4.2.1 Formalisme d’une instance

Lors de l’utilisation d’une instance d’un sch´ema de tra¸cage de traˆıtres `a deux uti-lisateurs, deux cl´es de d´echiffrement distinctes et identifiables sont g´en´er´ees. Dans une utilisation pournutilisateurs, on attribue `a chacun des utilisateurs l’une des deux cl´es de d´echiffrement : on doit d´efinir pr´ecis´ement quelle cl´e re¸coit chacun de ces utilisa-teurs. On assimile les utilisateurs aux entiers compris entre 1 et n. Pour un utilisateur

u ∈ {1, . . . , n}, soit φu un bit correspondant `a la cl´e de d´echiffrement re¸cu par l’utili-sateuru (0 pour la premi`ere cl´e, 1 pour la seconde cl´e).

Des messages ou parties de messages sont envoy´es prot´eg´es par le chiffrement d´efini par le sch´ema de tra¸cage de traˆıtres. Un utilisateur honnˆete utilise sa cl´e de d´echiffrement pour obtenir ces messages en clair. Un d´ecodeur pirate construit par une coalition C dispose potentiellement de l’ensemble des cl´es de d´echiffrement attribu´ees aux traˆıtres. Deux cas se pr´esentent :

– tous les traˆıtres ont re¸cu la mˆeme cl´e de d´echiffrement, et le d´ecodeur pirate n’a pas d’autre choix que d’utiliser cette cl´e pour d´echiffrer les donn´ees,

– deux traˆıtres ont re¸cu deux cl´es de d´echiffrement distinctes, et le d´ecodeur pi-rate peut utiliser celle de son choix, voire mˆeme les deux cl´es simultan´ement ou alternativement.

Dans le premier cas, le d´ecodeur pirate se comporte de mani`ere analogue `a un d´ecodeur pirate dans le sch´ema `a deux utilisateurs, avec une connaissance limit´ee `a la

Codes r´esistants `a des coalitions 117 cl´e de d´echiffrement de l’un des deux utilisateurs uniquement. Le tra¸cage pour deux utilisateurs permet d’identifier la cl´e de d´echiffrement utilis´ee.

Dans le second cas, quelle que soit la r´eponse du tra¸cage pour le sch´ema `a deux utilisateurs, elle est valide puisque le d´ecodeur pirate a eu acc`es aux deux cl´es de d´echiffrement.

Globalement, dans les deux cas, si la proc´edure de tra¸cage r´eussit, elle identifie une cl´e de d´echiffrement d´etenue par la coalition, c’est-`a-dire associ´ee `a un bitφv´erifiant :

∃u∈C / φu =φ.

4.4.2.2 Formalisme de plusieurs instances

Lors de l’utilisation de l instances d’un sch´ema de tra¸cage de traˆıtres `a deux uti-lisateurs, on g´en`ere deux cl´es de d´echiffrement distinctes et identifiables pour chaque instance. Chacun des nutilisateurs re¸coit pour chacune desl instances l’une des deux cl´es de d´echiffrement. L’attribution de ces cl´es `a l’utilisateuru∈ {1, . . . , n}est d´efinie par un motw(u) delbits : lei`eme bitwi(u) de ce mot correspond comme pr´ec´edemment `

a la cl´e de d´echiffrement re¸cue par l’utilisateuru pour l’instance i(0 pour la premi`ere cl´e, 1 pour la seconde cl´e).

Un message envoy´e est divis´e en l parties compl´ementaires, chacune d’entre elles ´etant dans un premier temps suppos´ee indispensable pour retrouver la moindre infor-mation sur le message envoy´e. Chaque partie est alors chiffr´ee en utilisant une instance diff´erente du sch´ema de chiffrement. On suppose que le tra¸cage de chaque instance peut ˆetre effectu´e ind´ependamment des autres instances.

Dans ce contexte, pour chacune deslinstances, le comportement d’une coalitionC

est similaire au comportement de la mˆeme coalition face `a une instance unique. Ainsi, lorsque le tra¸cage global r´eussit, il permet d’obtenir un mot w de l bit v´erifiant la propri´et´e fondamentale suivante :∀i∈ {1, . . . , l},∃u∈C / wi =w(iu).

4.4.2.3 Codes binaires et coalitions

La propri´et´e fondamentale pr´esent´ee pr´ec´edemment est tr`es proche de celle des codes sˆurs contre des coalitions. La r´epartition des cl´es de d´echiffrement deslinstances entre lesnutilisateurs peut donc s’appuyer sur de tels codes.

Les codes sˆurs contre des coalitions ont ´et´e introduits dans [BS95]. L’objectif est de construire diff´erentes version d’un mˆeme document num´erique, afin de pouvoir identi-fier la source d’une divulgation de ce document. L’id´ee est d’ins´erer dans le contenu num´erique des bits, appel´es marques, n’apportant aucune information nouvelle mais diff´erents d’une copie `a une autre.

Le d´etenteur d’une seule copie n’est pas en mesure de distinguer le contenu r´eel des marques qui ont ´et´e ins´er´ees, et il ne peut donc supprimer les marques. Une coalition dispose, elle, de plusieurs copies diff´erentes du mˆeme contenu. Elle peut donc identifier les marques pour lesquelles diff´erentes valeurs ont ´et´e utilis´ees dans les copies qu’elle

118 Tra¸cage de traˆıtres

d´etient : les marques en question peuvent ˆetre d´etruites, ou prendre une valeur au choix de la coalition. En revanche, les marques pour lesquelles toutes les copies de la coalition sont identiques ne peuvent ˆetre distingu´ees du contenu et ne peuvent ˆetre chang´ees.

Les codes sˆurs contre des coalitions d´efinissent une r´epartition des marques `a uti-liser entre les diff´erentes copies distribu´ees afin de pouvoir identifier un membre d’une coalition, `a partir du contenu sous la forme divulgu´ee par cette coalition.

Un (l, n)-code binaire est une suite den´el´ements de{0,1}l: (w(u))16u6n∈ {0,1}ln. Pour tout u ∈ {1, . . . , n}, le mot de code w(u) correspond aux marques plac´ees dans la copie distribu´ee `a l’utilisateur u. Une coalition de t utilisateurs est repr´esent´ee par un sous-ensemble C de {1, . . . , n}. Pour tout i ∈ {1, . . . , l}, une telle coalition peut identifier et alt´erer la marque en positionilorsque deux membres de cette coalition ont re¸cu des valeurs diff´erentes de cette marque. La coalition C peut ainsi construire une copie avec les marques associ´ees au motw∈ {0,1,?}l v´erifiant la propri´et´e suivante (le signe ? signifie que la marque a ´et´e supprim´ee ou alt´er´ee) :

∀i∈ {1, . . . , l},

(

wi∈ {0,1}=⇒ ∃u∈C / w(iu)=wi, wi= ? =⇒ ∃(u, u)∈C2/ wi(u)6=wi(u).

On appelle F(C) l’ensemble des mots w v´erifiant la propri´et´e pr´ec´edente, c’est-` a-dire correspondant aux copies r´ealisables par la coalitionC. On remarque en particulier que lors de l’utilisation de plusieurs instances d’un sch´ema de tra¸cage de traˆıtres `a deux utilisateurs, le mot w issu du tra¸cage des instances respecte des contraintes de construction similaires, `a partir des motsw(u) correspondant aux cl´es de d´echiffrement des membres de la coalition.

4.4.2.4 Codes sˆurs contre des coalitions

Id´ealement, on souhaiterait pouvoir construire un code pour lequel la connaissance dew∈F(C) permette de remonter de mani`ere certaine `a un membre de la coalitionC. Il existe cependant un r´esultat fort (donn´e dans [BS95]) montrant l’impossibilit´e d’une telle construction. On consid`ere en effet une coalitionC de trois utilisateurs,u1,u2 et

u3. Cette coalition peut, pour toute marque d´etectable, prendre la marque majoritaire parmi ses utilisateurs :

∀i∈ {1, . . . , l}, wi=Majorit´e

(wi(u))uC

.

Les marquesw ainsi d´efinies pourraient avoir ´et´e construites par deux membres quel-conques de la coalition, sans l’aide du troisi`eme :

w∈F({u1, u2}), w∈F({u1, u3}), w∈F({u2, u3}).

Il n’est donc pas possible d’incriminer un utilisateur avec certitude, puisque la contri-bution d’un membre de la coalition n’est pas rigoureusement indispensable.

Codes r´esistants `a des coalitions 119 Cette faiblesse est d’autant plus p´enalisante que les marques sont restreintes `a des bits. En effet, en utilisant des symboles plus nombreux pour les marques, il faut une taille de coalition plus importante pour pouvoir mettre en place cette attaque. Cepen-dant, d`es que la taille de la coalition est sup´erieure `a celle de l’ensemble des symboles utilis´es comme marques, la faiblesse est bien pr´esente. Pour pouvoir esp´erer tracer avec certitude des coalitions de taillet, il faut donc au moins t symboles pour les marques. Cette contrainte peut paraˆıtre raisonnable, mais dans le contexte du tra¸cage de traˆıtres, cela induit n´ecessairement un sch´ema ´el´ementaire `a t utilisateurs, et non plus deux : comme l’utilisation du watermarking pr´esent´ee pr´ec´edemment induit n´ecessairement une taille des chiffr´es lin´eaire en le nombre d’utilisateurs du sch´ema ´el´ementaire, cette option n’est pas envisageable si on veut pr´eserver une taille des chiffr´es ind´ependante du nombretde traˆıtres regroup´es dans la coalition.

Pour pr´eserver des marques binaires, l’alternative consiste en un tra¸cage probabiliste des marques. Pour cela, on ne s’int´eresse pas `a un code binaire unique mais `a une famille de codes : on g´en`ere un code de la famille en suivant une proc´edure probabiliste. La robustesse du code vient du fait qu’une coalition ne sait pas pr´ecis´ement quel code a ´et´e g´en´er´e.

Plus concr`etement, un code binaire (w(u))16u6n est tir´e al´eatoirement dans une familleF de codes lors du marquage du contenu `a prot´eger. On distribue lesnversions marqu´ees, chacune d’entre elles ´etant associ´ee `a un mot du code w(u). La connaissance de la familleF est publique, mais le code binaire utilis´e est gard´e secret.

Une coalition C d’au plus t utilisateurs re¸coit autant de contenus qu’elle a de membres : elle connaˆıt donc au mieux (w(u))uC, c’est-`a-dire au plus t mots du code utilis´e2. Tous les autres mots de code lui sont inconnus : la coalition est donc incapable d’identifier le code utilis´e pour marquer les contenus dans l’ensemble de tous les codes (x(u))16u6n de la famillesF v´erifiant :∀u∈C, x(u) =w(u). Quels que soient ces choix, la coalition agit donc de mani`ere similaire pour tous ces codes.

La d´efinition suivante exige qu’il existe une proc´edure de tra¸cageτ telle que quelles que soient les marques g´en´er´ees par la coalition, ce tra¸cage permette d’identifier des membres de cette coalition avec une probabilit´e 1−psur l’ensemble des codes (x(u))16u6n

deFco¨ıncidant avec le code (w(u))16u6nsurC, c’est-`a-dire tels que∀u∈C, x(u)=w(u). Cela signifie que quel que soit le comportement de la coalition, elle peut au mieux mas-quer ses membres pour une fraction p de cas totalement indistinguables de son point de vue.

D´efinition 4.10 (Famille de codes binaires sˆure contre des coalitions) Une

fa-milleF de(l, n)-codes binaires est(p, t)-sˆure contre des coalitions si on peut tracer des coalitions d’au plust membres avec un probabilit´e d’erreur au plus p.

Plus pr´ecis´ement, il existe une proc´edure de tra¸cage τ prenant pour entr´ees la des-cription d’un code et un mot dans {0,1,?}l associ´e `a des marques, et calculant un ensemble d’utilisateurs tel que : pour tout code (w(u))16u6n de la famille F, pour toute

2Si certaines marques sont identiques dans toutes les versions distribu´ees aux membres de la coali-tion, elle n’est en fait pas capable d’identifier compl`etement les mots de code associ´es.

120 Tra¸cage de traˆıtres

coalition C de taille inf´erieure ou ´egale `a t, pour tout mot w ∈ F(C), la probabilit´e sur l’ensemble des codes (x(u))16u6n de F co¨ıncidant avec (w(u))16u6n sur C que la proc´edureτ appliqu´ee au code(x(u))16u6n et au motw retourne un ensemble d’utilisa-teurs vide ou non-inclus dans C est inf´erieure `a p.

Cette d´efinition n’a de sens que pour une famille de codes. Cependant, lorsque la description du code induit implicitement la famille de codes qui correspond, parler simplement de code binaire sˆur contre des coalitions est envisageable, et c’est d’ailleurs le cas dans [BS95] o`u la notion de famille est masqu´ee.