Lección
La teoría — La marca de agua que sobrevive a una colusión
Un código de huella digital asigna a cada suscriptor una copia de la misma película con una cadena distinta de m bits, para que cualquier copia filtrada delate a quién se le entregó. Los bits no se eligen de manera uniforme. Cada posición j recibe su propio sesgo pj, extraído de forma que la mayoría de las posiciones sean casi todas unos o casi todas ceros en toda la base de suscriptores. Un grupo que combina sus copias solo puede detectar una posición allí donde sus propios bits difieren. La puntuación de acusación suma, a lo largo de las posiciones donde la falsificación muestra un uno, cuán sorprendente resultaba el bit de cada suscriptor.
Qué significa cada símbolo
m- la longitud del código en bits, que es de lo que trata toda la lección
c- cuántos suscriptores combinan sus copias
Z- el umbral de acusación: una puntuación por encima de este señala a alguien
- Supone
- El supuesto de marcado: allí donde cada copia de la coalición lleva el mismo bit, no pueden percibir que esa posición existe ni pueden cambiarla. Todo lo que verás en esta página se apoya en esto. En un sistema real es una afirmación sobre la incrustación (que una marca que no puedes ver al comparar copias es una marca que no puedes borrar) y es esta parte del diseño la que recibe los ataques, no la aritmética.
- Falla cuando
- Cuando el número de cómplices supera la capacidad para la que se diseñó el código. No hay una degradación progresiva. Las puntuaciones de los culpables caen como 1/c mientras que el listón se mantiene donde lo pone la población inocente. Por tanto, un código lo bastante largo para cuatro pero que se enfrenta a ocho no delata a alguien con un poco menos de frecuencia, sino que no delata a nadie.
Problemas resueltos al detalle
-
¿De dónde sale 2.490? La herramienta lo calcula para cuatro cómplices entre un millón de suscriptores. No es un número simulado: nace de dos leyes empíricas y de tu decisión sobre la frecuencia con la que toleras acusar a un inocente. La deducción ocupa apenas cuatro líneas. La última produce el cuadrado.
Abre este problema en la herramienta
-
La evidencia que deja un cómplice es proporcional a la longitud del código y se reparte entre todos ellos. Cada columna que controlan es el resultado de un esfuerzo conjunto. Las mediciones en coaliciones de 2 a 16 usuarios y códigos de 800 a 51.200 bits arrojan un valor de unos 0,34 m/c.
-
La puntuación de un suscriptor inocente suma m aportaciones independientes de media cero; un camino aleatorio. Su dispersión crece con la raíz cuadrada de la longitud, no en proporción directa. El valor medido ronda √(m/2).
-
Elige con qué frecuencia acusarás a un inocente: como máximo ε en una población de n. Para exculpar a un suscriptor necesitas 1 − ε/n. Con un millón de usuarios y una probabilidad entre mil, esto te sitúa a 6,00 desviaciones típicas.
-
Para que haya detección, la evidencia debe superar ese umbral. Combina ambas leyes y despeja m.
-
La variable c queda dentro del cuadrado, y ahí reside toda la respuesta. Necesitas 2.490 bits para cuatro cómplices y 9.959 para ocho. Hablamos del cuádruple, salvo por el redondeo a números enteros.
-
La cifra que debes usar al diseñar un sistema no es la que te daría una demostración matemática. El teorema original de Tardos lo garantiza con 100c²⌈ln(n/ε)⌉ bits, que aquí serían 2.100c². Es una estimación trece veces mayor que la gaussiana. Una prueba formal tiene que resistir cualquier estrategia de colusión imaginable, no solo las tres de esta página.
Respuesta
m > (z c √(1/2) ÷ 0,34)² = 4,3253 z² c², que para z = 5,9978 equivale a 155,60 c² antes de redondear al alza a bits enteros. Son 623 bits para dos cómplices, 2.490 para cuatro y 39.833 para dieciséis. En bytes hablamos de 78 B, 311 B y 4,98 kB de carga útil. Es tan poco espacio que la longitud casi nunca será el problema que te frene. Por eso los expertos prefieren discutir la premisa de la marca. Lo único que no puedes compensar frente a ese cuadrado es la audiencia. La n interviene solo a través de la z, que aumenta como √(log n). Pasar de mil suscriptores a diez millones alarga el código de 1.564 a 2.801 bits. Es una subida del 79%, mientras que duplicar la coalición una sola vez eleva el coste un 300%.
-
-
¿Para qué necesita esto una plataforma de streaming? El primer paso de esta serie describe un entorno donde todas las copias son idénticas y resulta imposible comunicarse con el dispositivo. Un servicio de suscripción es el extremo opuesto. La propia documentación de Widevine indica que la solicitud de licencia viaja por HTTPS hasta el servidor y que «el contenido de la licencia ya no se puede modificar y está individualizado para el dispositivo que lo solicita». Entonces, ¿qué nos queda de las matemáticas?
Abre este problema en la herramienta
-
La mitad desaparece por completo. Si dispones de un canal de retorno, no hay cabecera que cubrir. Excluir a un dispositivo del flujo de datos no te cuesta nada, porque basta con no emitirle la licencia. Todo el problema de recubrimiento del primer paso es el precio a pagar por la falta de comunicación. Un disco no puede preguntar quién lo está reproduciendo.
-
La otra mitad no desaparece; se vuelve aún más importante. El servidor de licencias bloquea aquellos dispositivos comprometidos que ya conoce, pero no puede evitar que un suscriptor legítimo grabe lo que acaba de descifrar. Esa filtración lleva una huella digital. Y esa huella es el único elemento que delata su identidad.
-
Así que el problema de dimensionamiento es el que tienes en esta página, con una base de suscriptores real. La longitud del código crece con el cuadrado de la coalición y, en cuanto a la audiencia, solo mediante un logaritmo.
-
Lee la tabla en horizontal y luego en vertical. Dieciséis cómplices cuestan sesenta y cuatro veces más que dos. Pasar de diez mil suscriptores a cien millones (cuatro órdenes de magnitud) multiplica la necesidad por 1,66.
-
Con diez millones de suscriptores y cuatro cómplices obtenemos 2.801 bits: trescientos cincuenta bytes de carga útil para una película de varios gigabytes.
Respuesta
La longitud del código nunca supone un problema. Hablamos de 350 bytes a una escala donde el contenido se mide en miles de millones de bytes. Multiplicar la audiencia por mil solo aumenta la longitud en dos tercios, en lugar de mil veces. El tamaño de la coalición es el único factor que muerde fuerte, porque es el único que queda dentro del cuadrado. Y la cantidad de personas que acabarán juntando sus copias es el único dato de todo el cálculo que nadie puede medir de antemano. Un sistema real no invierte su ingeniería en esta aritmética. La dedica a lograr que la marca resista recodificaciones, recortes y una cámara apuntando a la pantalla, y a sostener la premisa de la marca cuando el atacante dispone de dos copias y una herramienta para buscar diferencias.
-
Ruta de aprendizaje
Proteger una transmisión: revocar un dispositivo y descubrir cuál fue
Referencias (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.