HDCP是如何实现的?
知道HDCP是干啥的以后,我们就来探讨HDCP是如何实现的。当然了,以下内容有些枯燥和绕嘴,如果您没兴趣的话,可以直接看本页最后一段的总结。
支持HDCP要求设备上必须拥有一个独一无二的HDCP密钥(Secret Device Keys),密钥由40组56bit的数组密码组成。这个部分HDCP密钥可以放在单独的芯片中,也可以放在其它芯片的内部,例如ATI和NV完全可以将它们放入显示芯片中。每一个有HDCP芯片的设备会拥有一组私钥(Device Private Key),一组私钥将会组成KSV(Key Selection Vector)。KSV相当于这台拥有HDCP芯片设备的ID号。

HDCP传输器在发送讯号前,将会检查传输和接受数据的双方是否是HDCP设备,它利用HDCP密钥(Secret Device Keys),让传输器与接收端交换,这时双方将会获得一组KSV并且开始进行运算,其运算的结果会让两方进行对照,若运算出来的数值相符,该传输器就可以确认该接收端为合法的一方。
传输器确定了接收端符合要求,传输器便会开始进行传输讯号,不过这时传输器会在讯号上加入了一组密码,接收端必须实时进行解密才能够正确的显示影像。换句话说,这HDCP并不是确认双方合法后就不管了,这家伙还在传输中加入了密码,以防止在传输过程中偷换设备。具体的实现方法是HDCP系统会每2秒进行确认,同时每128帧画面进行一次发送端和接受端计算一次RI值,比较两个RI值来确认连接是否同步。

密码和算法泄密是厂家最头疼的事,为了应对这个问题,HDCP特别建立了“撤销密钥”机制。每个设备的密钥集KSV值都是唯一的,HDCP系统会在收到KSV值后在撤销列表中进行比较和查找,出现在列表中的KSV将被认做非法,导致认证过程的失败。这里的撤销密钥列表将包含在HDCP对应的多媒体数据中并将自动更新。简单的说,KSV是针对每一个设备制定了唯一的序号,比较自然的可用号码是每个设备的SN号。这样以来,即便是某个设备被破解了,也不会影响到整体的加密效果。
另外,刚才我们提到了HDCP有个撤销列表,这其实就个黑名单,凡是在这个黑名单中的HDCP设备会被认为已经被泄密,已经不被认可。黑名单存储在一个EEPROM中。
一个例子:编辑海洋要交给编辑漂移一沓文件,但海洋并不认识漂移,但我们双方都知道一套特定的密码和算法。所以见面之后,我们交换各自的密码,然后根据算法运算,如果得到的结果正确,就可以确认对方的身份。编辑海洋在交给编辑漂移文件的过程中,要不断询问问题,如果漂移回答不正确,海洋仍然要将文件收回。另外,海洋自己有个黑名单,如果漂移的名字在黑名单上,无论如何也不会把文件给他。
总的来说,HDCP的规范相当严谨,除了内容本身加密外,传输过程也考虑的相当精细,双方设备都要内置HDCP才能实现播放。