HDCP Higt-Bandwidth Digital Content Protect高宽带数字内容保护。
本文适用于1.4HDCP。
从DCP公司买的Device Key Set Package将以二进制文件发送到客户手里,文件头四个字节为Order format,该值为“1”则是给发送端的,该值为“2”则是给接收端的。每个HDCP设备都包含一个密钥集(Device Key Set),由40个56bits的私钥和一个密钥选择向量(KSV Key Selection Vector)组成,KSV是一个40bits的二进制数,还有一个SHA-1的密码散列函数,可以生成一个被称为消息摘要的160位(20个字节)的散列值。以上都是数字内容保护公司分配给HDCP设备的,是独一无二的。
HDCP协议认证分为三个部分:
-
第一部分 验证对方的密钥是否已授权
假设发送端为A,接收端为B,HDCP发送端可以开始身份验证在任何时候,甚至是上一次认证还未结束。A通过密码函数先发送一个64bits的伪随机数An和AKSV给B,B收到后会发送响应BKSV和一个repeater bit给A,repeater bit用来指示是否为中继器。如果KSV没有被撤销,则KSV包含20个1和20个0,同时,两方会计算出一个56bits的共享密钥值Km、Km’,任意一组密钥无效都会导致Km、Km’不同,随后根据Km算出R0、R0’。如如果此时R0相等则验证成功。 -
第二部分 HDCP加密
如果B是repeater中继器,那么第二部分是必须要的,由repeater bit指示,B将下游的HDCP接收器和HDCP中继器的KSV收集起来给到A,而且必须是有在活动状态的接收器和中继器,收集起来的KSV成为一个列表。为了验证KSV list的完整性,会check A计算出来的哈希值V和B计算出来的V’。相同则继续,并且会read列表中的KSV,看看是不是存在于“撤销列表”中,如果存在,则视为非法的KSV。这也就是“密钥撤销机制”。 -
第三部分 再认证
第三部分发生在启用加密帧前的垂直消隐之中,并为HDCP加密帧内的HDCP内容提供一个初始化状态。每两秒至少重新进行一次密钥匹配,也就是验证Ri的值是否相等。