Farrin's Project 1: Research Project Topic

HDCP in HDMI systems

CS 441 Project 1 - HDCP in HDMI systems, Farrin Reid

What is HDMI?

HDMI stands for High-Definition Multimedia Interface. It is an interface in which you can send digital audio and video from say your sweet new Blu-Ray player to your awesome new 37" LCD TV. HDMI products have been on the consumer market since 2003, and since then have grown more widespread. There are different types of HDMI, but they alluse the same interface to send data. In the United States, HDCP is a standard feature on almost all digital TVs.

Pin 1 TMDS Data2+
Pin 2 TMDS Data2 Shield
Pin 3 TMDS Data2–
Pin 4 TMDS Data1+
Pin 5 TMDS Data1 Shield
Pin 6 TMDS Data1–
Pin 7 TMDS Data0+
Pin 8 TMDS Data0 Shield
Pin 9 TMDS Data0–
Pin 10 TMDS Clock+
Pin 11 TMDS Clock Shield
Pin 12 TMDS Clock–
Pin 13 CEC
Pin 14 Reserved (N.C. on device)
Pin 15 SCL
Pin 16 SDA
Pin 17 DDC/CEC Ground
Pin 18 +5 V Power (max 50 mA)
Pin 19 Hot Plug Detect

What is HDCP?

HDCP stands for High-bandwith Content Protection. Interestingly enough it was designed by the Intel corperation in hopes to add yet another way to copy protect digital audio and video. HDCP can protect media that travels across HDMI, DVI, GVIF, UDI, DLI, and DisplayPort. As HDCP is proprietary, it requires a liscence to implement, if you are interested in getting such a liscence click here. Though I am sure most of you are not, lets move on.

Good Article on HDCP

There are 3 types of devices that use HDCP. The are Source Devices, Sink Devices, and Repeater Devices(Technically a 4th called a stripper whichI will discuss later). Source devices are devices such as a DVD or Blue-Ray player. Sink devices are devices you install into your kitchen and they render the video or audio in forms as a TV or Digital projecters if you are rich. Otherwise you just install them where ever is best. Repeater Devices do just that, they repeat, or some times they amplify and repeat or send the stream that is sent to it to multiple devices, so you can play your movie on your main TV and the TV you installed above your kitchen sink with all your PFD money just so you can make washing your dishes much more fun :).

links: HDCP @ wikipedia

How does HDCP work?

HDCP is Comprised of a Authentication process, Encryption process, and a key recovation process. The Authentication process helps prevent non-liscensed devices from recieveing digital content. Every HDCP device has its own set of private keys. There are 40 of them each 56 bits long and an additional public key is created called a KSV(Key Selection Vector) that is 40 bits long(20 bits are set to 0 while the others are of course 1s). The authentication process occurs over the DDC channel. A lot of effort is put into keeping these keys confidential, especially with the idea of the revocation lists. Most HDCP encoders/decoderes are included with thier respective TMDS chips the keys are usually pre-loaded onto the chips as they leave the factories. The way these keys(KSVs) are exchanged are known as Blom's Scheme. A stream cipher is used in the encryption process over the TMDS channels. Every pixel can be decoded/encoded with a 24-bit number that is generated based off of the 40-bit KSVs that are exchanged. If you XOR the shared key with the encoded pixels it should decode it. After every few frames or so, according to the HDCP specification, there is to be a key update and a check whether or not everthing is still sane. Revocation, these lists are placed on dvd, or blu-ray media, signed with DSA, the 40 keys are mached with the KSV list that is produced and if there is a match then the sink is denied digital content.
[netrun example(s)]

What are the problems with HDCP?

If you don't have HDCP compliant sources or sinks or both then you don't get to see HD Video or hear HD audio... In extreme cases your media will refuse to play, otherwise you will just see and hear a downgraded version of your media Dvd-audio is restricted to CD-quality or less on non-HDCP(digital) outputs. There can often be handshaking problems with older HD displays. HD devices like a blu-ray play are not supposed to transmit protected content to non-HDCP-compliant devices. Some device shut down analog ouput when digital content is playing. Some devices are not implemented the same and so for one example accidentally continually reset the HDCP authentication.

Ways around HDCP?

Strippers, brute force?, hacking HDCP devices[more]