Traitor tracing schemes help trace the source of leaks when secret or proprietary data is sold to many customers. In a traitor tracing scheme, each customer is given a different personal decryption key. (Traitor tracing schemes are often combined with conditional access systems so that, once the traitor tracing algorithm identifies a personal decryption key associated with the leak, the content distributor can revoke that personal decryption key, allowing honest customers to continue to watch pay television while the traitor and all the unauthorized users using the traitor's personal decryption key are cut off.) Traitor tracing schemes are used in pay television to discourage pirate decryption – to discourage legitimate subscribers from giving away decryption keys. Traitor tracing schemes are ineffective if the traitor rebroadcasts the entire (decrypted) original content. There are other kinds of schemes that discourages pirate rebroadcast – i.e., discourages legitimate subscribers from giving away decrypted original content. These other schemes use tamper-resistant digital watermarking to generate different versions of the original content. Traitor tracing key assignment schemes can be translated into such digital watermarking schemes. Traitor tracing is a copyright infringement detection system which works by tracing the source of leaked files rather than by direct copy protection. The method is that the distributor adds a unique salt to each copy given out. When a copy of it is leaked to the public, the distributor can check the value on it and trace it back to the "leak". Primary methods Activation controls The main concept is that each licensee (the user) is given a unique key which unlocks the software or allows the media to be decrypted. If the key is made public, the content owner then knows exactly who did it from their database of assigned codes. A major attack on this strategy is the key generator (keygen). By reverse engineering the software, the code used to recognise a valid key can be characterised and then a program to spit out valid keys on command can be made. The practice of traitor tracing is most often implemented with computer software, and evolved from the previous method of activation codes. In this model, each box of software ships with a unique activation number on a sticker or label that can only be read after the package is opened, separate from the CD-ROM or a DVD-ROM. This number is an encoded serial number, expanded to a usually