HDCPHigh-Bandwidth Digital Content ProtectionHigh-Bandwidth Digital Content Protection (HDCP) is a form of digital rights management (DRM) developed by the Intel Corporation to control digital audio and video content as it travels across Digital Visual Interface (DVI) or High Definition Multimedia Interface (HDMI) connections. The HDCP specification is proprietary and an implementation of HDCP requires a license. HDCP is licensed by Digital Content Protection, LLC. In addition to paying fees, licensees agree to limit the capabilities of their products. High-definition digital video content is restricted to DVD quality on non-HDCP video outputs. DVD-Audio content is restricted to DAT quality on non-HDCP digital audio outputs (analog audio outputs have no quality limits). Licensees cannot allow their devices to make copies of content, and must design their products to "effectively frustrate attempts to defeat the content protection requirements." Specification HDCP's main target is to prevent transmission of non-encrypted high definition content. Three systems were developed to achieve that goal: Authentication process disallows non-genuine devices to receive HD content. Encryption of the actual data sent over DVI or HDMI interface prevents eavesdropping of information. It also prevents "man in the middle" attacks. Key revocation procedures ensure that devices manufactured by any vendors who violate the license agreement could be relatively easily blocked from receiving HD data. Each HDCP capable device model has a unique set of keys; there are 40 keys, each 56 bits long. These keys are confidential and failure to keep them secret may be seen as a violation of the license agreement. For each set of keys a special key called a KSV (Key Selection Vector) is created. Each KSV has exactly 20 zero bits and 20 bits set to 1. During the authentication process, both parties exchange their KSVs. Then each device adds (without overflow) its own secret keys according to a KSV received from another device. If a particular bit in the vector is set to 1, then the corresponding secret key is used in the addition, otherwise it is ignored. Keys and KSVs are generated in such a way that during this process both devices get the same 56 bit number as a result. That number is later used in the encryption process. Encryption is done by a stream cipher. Each decoded pixel is encrypted by applying an XOR operation with a 24-bit number produced by a generator. The HDCP specifications ensure constant updating of keys (after each encoded frame). If some particular model is considered "compromised", its KSV is put into revocation lists, which are written e.g. on newly produced disks with HD content. Each revocation list is signed with a digital signature using the DSA algorithm; this is supposed to prevent malicious users from revoking legitimate devices. During the authentication process, if the receiver's KSV is found by a transmitter in the revocation list, then the transmitter considers the receiver to be compromised and refuses to send HD data to it. |
