Fingerprinting Codes

Fingerprinting codes were first introduced by BS98. A fingerprinting code is a process to produce codewords for users. If a group of these users collude to adversarially produce a new codeword, then a fingerprinting code guarantees that the distributor can trace the new word back to these colluders with high probability.

Definition

For fingerprinting codes, it is useful to define the descendants function , which maps subsets of codewords in to other subsets in the same space. Formally, if index as character , then there must be some which also has that character at index . This captures the idea that a group of colluding pirates may be able to selectively choose their codewords, but they cannot forge characters at indices they didn’t have access to.

Syntax

A fingerprinting code is a tuple of functions with respect to a keyspace , alphabet , number of users , and codeword length , which depends on the error threshold such that:

Note: The fingerprinting code functions are not strictly “efficient,” since for example can take in bits and outputs bits. However, we generally require that both functions run in time that is polynomial in and .

Correctness

A fingerprinting code is correct if for any , set of colluding users , and , we have that:

In more plain English, this definition means that the fingerprinting code is useful and correct with probability at least as long as code generation is given the maximum size of the possible collusion as input. The first condition in the probability means that the trace does not accuse an innocent (non-colluding) user. The second condition makes sure that the trace algorithm does at least accuse some user though.

Note: One can also define fingerprinting codes with respect to a security parameter and require error that is negligible in the security parameter. But, this follows immediately from the above definition by setting .

Variations

  • Robust fingerprinting codes allow the colluding parties to additionally erase some of the codeword bits. There are additional variants between the type of erasures that are allowed.

Other results

Constructions

  • There exist fingerprinting codes of length — Tar08
    • This is also the optimal length of FP codes