Lesson
The theory — The Watermark That Survives a Collusion
A fingerprinting code gives every subscriber a copy of the same film carrying a different string of m bits, so a leaked copy names whoever it was issued to. The bits are not chosen evenly: each position j gets its own bias pj, drawn so that most positions are nearly all ones or nearly all zeros across the whole subscriber base. A group who pool their copies can see a position only where their own bits differ, and the accusation score adds up, over the positions where the forgery says one, how surprising each subscriber's bit was.
What each symbol means
m- the length of the code in bits, which is what the whole lesson is about
c- how many subscribers pool their copies
Z- the accusation threshold: a score above it names somebody
- Assumes
- The marking assumption: where every copy in the coalition carries the same bit, they cannot tell that position is there and cannot change it. Everything on this page rests on it. In a real system it is a claim about the embedding — that a mark you cannot see by comparing copies is a mark you cannot remove — and it is the part of the design that gets attacked rather than the arithmetic.
- Breaks when
- When the number of colluders is larger than the code was sized for. There is no graceful degradation: the scores of the guilty fall as 1/c while the bar stays where the innocent population puts it, so a code long enough for four and facing eight does not name somebody a little less often, it names nobody.
Problems solved in full
-
Where does 2,490 come from? The tool prints it for four colluders among a million subscribers, and it is not a simulated number: it comes from two measured laws and one decision about how often you are willing to accuse an innocent person. The derivation is four lines, and the last of them is the one that produces the square.
-
The evidence a colluder leaves is proportional to the length of the code and shared out among them, because each column they control is one they all had a hand in. Measured across coalitions of 2 to 16 and codes of 800 to 51,200 bits: about 0.34 m/c.
-
An innocent subscriber's score is a sum of m independent contributions with mean zero, so it is a random walk. Its spread grows like the square root of the length, not the length. Measured: about √(m/2).
-
Choose how often you will accuse an innocent person: at most ε across a population of n. One subscriber must therefore be cleared at 1 − ε/n, which for a million subscribers and one chance in a thousand is 6.00 standard deviations out.
-
Detection needs the evidence to clear the bar. Put the two laws in and solve for m.
-
The c is inside the square, and that is the whole answer: 2,490 bits for four colluders and 9,959 for eight, which is four times as many to within the rounding up to whole bits.
-
The number to design around is not the number a proof will give you. Tardos's own theorem guarantees this with 100c²⌈ln(n/ε)⌉ bits, which is 2,100c² here — thirteen times longer than the Gaussian estimate, because a proof must hold against every collusion strategy rather than against the three on this page.
Answer
m > (z c √(1/2) ÷ 0.34)² = 4.3253 z² c², which at z = 5.9978 is 155.60 c² before rounding up to whole bits: 623 bits for two colluders, 2,490 for four, 39,833 for sixteen. In bytes that is 78 B, 311 B and 4.98 kB of watermark payload — small enough that the length is almost never what stops you, and the reason the field argues about the marking assumption instead. The one thing the square cannot be traded against is the audience: n enters only through z, which grows like √(log n), so going from a thousand subscribers to ten million takes the length from 1,564 bits to 2,801, a rise of 79%, while doubling the coalition once costs 300%.
-
-
Does a streaming service need any of this? Step one of this series covers a world where every copy is identical and there is no way to talk to a device. A subscription service is the opposite: Widevine's own documentation says a licence request goes over HTTPS to a licence server and that "the contents of the license are no longer modifiable and are individualized to the requesting device". So what is left of the mathematics?
-
Half of it goes away entirely. With a back channel there is no header to cover: excluding a device costs nothing in the stream, because you simply do not issue it a licence. The whole covering problem of step one is the price of having no way to talk back — a disc cannot ask who is playing it.
-
The other half does not go away, and gets more important rather than less. A licence server stops a device it knows is compromised; it cannot stop a subscriber in good standing from recording what they legitimately decrypted. That leak carries a fingerprint, and the fingerprint is the only thing that names them.
-
So the sizing question is the one on this page, at a real subscriber base. The code length grows with the square of the coalition, and with the audience only through a logarithm.
-
Read the table across and then down. Sixteen colluders cost sixty-four times two colluders. Ten thousand subscribers to a hundred million — four orders of magnitude — costs 1.66 times.
-
At ten million subscribers and four colluders that is 2,801 bits: three hundred and fifty bytes of payload, for a film of several gigabytes.
Answer
Nothing about the code length is ever the problem. 350 bytes at a scale where the content is billions of bytes, and an audience a thousand times larger costs two thirds again rather than a thousand times. The coalition is the only term that bites, because it is the only one inside the square — and the number of people who will actually pool their copies is the one quantity in the whole calculation that nobody can measure in advance. What a real system spends its engineering on is not this arithmetic: it is making the mark survive re-encoding, cropping and a camera pointed at a screen, and holding the marking assumption up when the attacker has two copies and a difference tool.
-
Learning path
Protecting a stream: revoke a device, then find out which one
References (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.