Leçon
La théorie — Le filigrane qui survit à une collusion
Un code de tatouage fournit à chaque abonné une copie du même film, porteuse d'une chaîne unique de m bits. Une fuite désigne ainsi son destinataire. Les bits ne sont pas choisis uniformément. Chaque position j reçoit son propre biais pj, tiré de sorte que la plupart des positions valent presque toutes un ou zéro parmi l'ensemble des abonnés. Si un groupe mutualise ses copies, il ne repère une position que là où ses propres bits divergent. Le score d'accusation additionne alors, sur les positions où la falsification vaut un, à quel point le bit de chaque abonné était inattendu.
Ce que signifie chaque symbole
m- la longueur du code en bits, sujet de toute cette leçon
c- le nombre d'abonnés qui mutualisent leurs copies
Z- le seuil d'accusation : un score qui le dépasse désigne quelqu'un
- Suppose
- L'hypothèse de marquage : lorsque chaque copie de la coalition porte le même bit, ses membres ne peuvent ni repérer cette position, ni la modifier. Tout repose sur ce principe dans cette page. Dans un système réel, c'est un postulat sur l'insertion : une marque que vous ne pouvez pas détecter en comparant les copies est une marque que vous ne pouvez pas effacer. C'est d'ailleurs cette partie de la conception que l'on attaque, bien plus que l'arithmétique.
- Ne tient plus quand
- Lorsque le nombre de complices dépasse celui pour lequel le code a été conçu. Il n'y a aucune dégradation progressive : les scores des coupables chutent en 1/c alors que le seuil reste fixé par la population innocente. Ainsi, un code dimensionné pour quatre mais confronté à huit ne désigne pas quelqu'un un peu moins souvent. Il ne désigne personne.
Problèmes entièrement résolus
-
D'où sort 2 490 ? L'outil l'affiche pour quatre comploteurs parmi un million d'abonnés. Ce n'est pas un nombre simulé. Il provient de deux lois mesurées et d'une décision quant à la fréquence à laquelle vous acceptez d'accuser un innocent. La démonstration tient en quatre lignes. La dernière d'entre elles produit le carré.
Ouvrez ce problème dans l'outil
-
Les preuves laissées par un comploteur sont proportionnelles à la longueur du code. Elles sont réparties entre eux puisque chaque colonne qu'ils contrôlent implique la participation de tous. La mesure sur des coalitions de 2 à 16 et des codes de 800 à 51 200 bits donne environ 0,34 m/c.
-
Le score d'un abonné innocent est la somme de m contributions indépendantes de moyenne nulle. Il s'agit donc d'une marche aléatoire. Sa dispersion croît comme la racine carrée de la longueur et non comme la longueur elle-même. La mesure donne environ √(m/2).
-
Choisissez la fréquence à laquelle vous accuserez une personne innocente, disons au plus ε sur une population de n. Un abonné donné doit donc être innocenté avec une probabilité de 1 − ε/n. Pour un million d'abonnés et une chance sur mille, on se situe à 6,00 écarts-types.
-
La détection exige que les preuves franchissent le seuil. Introduisez les deux lois et résolvez pour m.
-
Le c se trouve dans le carré et c'est là toute la réponse. On obtient 2 490 bits pour quatre comploteurs et 9 959 pour huit, soit quatre fois plus aux arrondis aux bits entiers près.
-
Le nombre sur lequel fonder la conception n'est pas celui que fournira une démonstration mathématique. Le théorème de Tardos lui-même garantit le résultat avec 100c²⌈ln(n/ε)⌉ bits. Cela donne ici 2 100c², soit treize fois la longueur de l'estimation gaussienne. Une preuve formelle doit en effet résister à toutes les stratégies de collusion et pas seulement aux trois présentées sur cette page.
Réponse
m > (z c √(1/2) ÷ 0,34)² = 4,3253 z² c², ce qui donne pour z = 5,9978 une valeur de 155,60 c² avant l'arrondi aux bits entiers. On trouve 623 bits pour deux comploteurs, 2 490 pour quatre, 39 833 pour seize. En octets, cela représente une charge utile de tatouage de 78 o, 311 o et 4,98 ko. C'est suffisamment petit pour que la longueur ne soit presque jamais un obstacle, d'où le fait que les débats du domaine portent plutôt sur l'hypothèse de marquage. La seule chose que le carré ne permet pas de compenser est l'audience. Le terme n n'intervient que par le biais de z, qui croît comme √(log n). Passer d'un millier d'abonnés à dix millions fait ainsi passer la longueur de 1 564 bits à 2 801. Cette hausse de 79 % contraste avec les 300 % que coûte un simple doublement de la coalition.
-
-
Un service de streaming a-t-il besoin de tout cela ? La première étape de cette série décrit un monde où toutes les copies sont identiques sans aucun moyen de communiquer avec un appareil. Un service d'abonnement fonctionne à l'inverse. La propre documentation de Widevine indique qu'une demande de licence passe par HTTPS vers un serveur de licences. Elle précise que « le contenu de la licence n'est plus modifiable et est individualisé pour l'appareil qui en fait la demande ». Que reste-t-il alors des mathématiques ?
Ouvrez ce problème dans l'outil
-
La moitié disparaît purement et simplement. La présence d'un canal de retour élimine l'en-tête à couvrir. Exclure un appareil ne coûte rien dans le flux puisqu'il suffit de ne pas lui délivrer de licence. Le problème de couverture de la première étape est le prix à payer pour l'absence de voie de retour. Un disque ne peut pas demander qui le lit.
-
L'autre moitié subsiste et gagne même en importance. Un serveur de licences bloque un appareil qu'il sait compromis. Il ne peut cependant pas empêcher un abonné en règle d'enregistrer ce qu'il a légitimement déchiffré. Cette fuite comporte une empreinte. Cette empreinte est la seule chose qui permet de l'identifier.
-
La question du dimensionnement est donc celle que vous voyez sur cette page, pour une base d'abonnés réelle. La longueur du code croît avec le carré de la coalition, et avec l'audience uniquement par un logarithme.
-
Lisez le tableau horizontalement puis verticalement. Seize comploteurs coûtent soixante-quatre fois plus cher que deux. Passer de dix mille abonnés à cent millions, soit quatre ordres de grandeur, multiplie le coût par 1,66.
-
Pour dix millions d'abonnés et quatre comploteurs, on obtient 2 801 bits. Cela représente trois cent cinquante octets de charge utile pour un film de plusieurs gigaoctets.
Réponse
La longueur du code ne pose jamais de problème. On parle de 350 octets à une échelle où le contenu compte des milliards d'octets. Une audience mille fois plus grande augmente le coût des deux tiers et non d'un facteur mille. La coalition est le seul terme pénalisant car c'est le seul à l'intérieur du carré. Le nombre de personnes qui mettront réellement leurs copies en commun reste la seule quantité de tout le calcul que personne ne peut mesurer à l'avance. L'ingénierie d'un système réel ne se consacre pas à cette arithmétique. Elle s'attache à faire survivre la marque au réencodage, au recadrage et à une caméra braquée sur un écran. Elle doit maintenir la validité de l'hypothèse de marquage lorsque l'attaquant dispose de deux copies et d'un outil de différenciation.
-
Parcours
Protéger un flux : révoquer un appareil, puis identifier lequel
Références (4)
- Worked problem 2 turns on a streaming service working the other way round from step 1 of the series, and this is the vendor's own description of the licence flow: Google, "Widevine DRM Overview", developers.google.com/widevine/drm/overview.
- The code this page builds, the accusation score it computes, and the c² the whole lesson is about: G. Tardos, "Optimal probabilistic fingerprint codes." Journal of the ACM 55(2), 2008, pp. 1–24. First published in STOC 2003, pp. 116–125.
- Where the marking assumption comes from, and the proof that some length is unavoidable: D. Boneh and J. Shaw, "Collusion-secure fingerprinting for digital data." IEEE Transactions on Information Theory 44(5), 1998, pp. 1897–1905.
- Why a studio cares: this is the other half of the same specification as step 1 of the series, and forensic marks are what it falls back on when revocation is too slow. AACS LA, Advanced Access Content System (AACS): Introduction and Common Cryptographic Elements, Revision 0.91, 17 February 2006.