HDCP stream decoding in real time
In mid-September, a master key for the High bandwidth Digital Content Protection (HDCP) system showed up on the internet. Intel confirmed its authenticity but at the same time, played down its relevance. Intel spokesman, Tom Waldrop said it was only of use to a manufacturer seeking to make playback hardware without paying the HDCP licence fee.
But that did not stop researchers from Stony Brook University. They have created an open source tool to find out how fast a PC would have to be to decrypt the HDCP encryption scheme in real time. Rob Johnson and Mikhail Rubnich implemented the HDCP algorithm in software and examined the result of decrypting 640 by 480 resolution images on a single core. Their results show that, using an Intel Xeon 5140 and a Intel Core 2 Duo P9600, it was possible to decode at a rate of 181 frames per second on the Xeon and at 76 frames per second on the Core 2 Duo. From this they estimated that a "high-end CPU with a 64-bit CPU" should be able to decrypt 30 frame per second 1080p content using two cores and around 1.6GB of RAM.
In a test by The H's associates at heise online, using a Intel Core i5 750 running at 2.67Ghz, 640 by 480 HDCP content could be decoded at around 281 frames per second. According to Johnson and Rubnich, it would take seven times the processing power to the decode full 1920 by 1080 pixel 30 frame per second footage, so it would be possible, with a sufficiently powerful Core i5 processor used in conjunction with a HDMI capture card and appropriate software, to receive and decode HDCP protected HD streams.
In fact it's possible that lesser CPUs may be able to decrypt HDCP in software; so far the two Stony Brook researchers have only implemented bit slicing to achieve higher performance. Parallel processing on multiple cores and processor specific optimisations have not yet been implemented. The software is available under a BSD licence for other researchers to examine and develop further.