DisplayPort接口标准是由视频电子标准协会(VESA)批准的,一个开放的、可扩展的标准。其为降低PC平台和元件的成本及推动通用数字接口而开发。DisplayPort实现了显示设备用一条电缆与数字视频信号连通的高清数字音频,并实现真正即插即用的强大的互操作性,这些使现有的数字显示互连非常具有成本效益。为了提高其与现有数字接口的互通性,DisplayPort的1.1版本增加了兼容支持高带宽数字内容保护(HDCP)来支持HDMI和DVI采用的HDCP技术。
图1 DisplayPort数据传输通道
DisplayPort
1 DisplayPort接口
DisplayPort体积小,传输结构利用了类似PCI Express的电气层,采用“Micro-Packet Architecture(微封包架构)”传输架构,使视频内容以封包方式传送。传输数据最高可支持10.8Gb/s的传输带宽。
2 DisplayPort链路
DisplayPort链路由一个主链路、一个辅助通道(AUX CH)、一个热插拔检测(HPD)信号线组成。如图1所示,主链路是一条单向、高带宽并且低延时的通道,用于传输未经压缩的视频和音频等同步数据流。辅助通道是一条用于链路管理和设备控制的、半双工的双向通道。HPD信号用作终端设备的中断请求信号。
HDCP
HDCP技术由好莱坞与Intel合作开发,保护未经压缩的数字音视频内容,适用于高速的数字视频接口(DisplayPort、HDMI、DVI),其最新版本HDCP 1.3已经支持DisplayPort接口采用源设备和显示设备间直接认证,内容加扰实现保护。HDCP设计为内容消费链中的最后一个环节,从内容源设备到显示设备,HDCP不允许完全内容拷贝行为,即拷贝控制信息CCI 只有禁止拷贝状态。在系统更新方面,HDCP采用吊销列表来屏蔽已经被窃取的设备私钥。
HDCP与DisplayPort
1 HDCP在DisplayPort上应用机制
HDCP应用于DisplayPort接口的保护机制包括以下三个元素。
①HDCP发送器,能立即识别下游接收器的拓扑连接结构,认证协议会确保HDCP发送器发出的信号是HDCP接收器所授权接受的。
②DCP LLC会撤销授权无效的HDCP接收器的授权。
③在有HDCP保护的信号下发送与接收的同时,不断对加密视频传输的完整性进行验证。
2 HDCP结构以及算法实现
①HDCP结构
HDCP在DisplayPort接口内容保护中采用了树状的拓扑结构,为了使得完成认证的时间在容许范围之内,HDCP规定了一个拓扑结构最多允许有7层结点、128个接收设备。图2显示了一个设备深度为2、设备数为4的拓扑结构。
图2 HDCP拓扑结构图
②结合硬件采用软件实现HDCP
软件实现HDCP过程中,需要芯片内部硬件加密系统的支持,如伪随机数的产生等。硬件加密系统结构如图3所示。
图3 硬件加密系统结构
● BKSV检验
HDCP由发送端(Tx)发起,Tx系统初始化时内部首先产生伪随机数An,并将其与自身的KSV一并发给接收端(Rx),同时Tx读取Rx的BKSV,BKSV存储在接收端的DPCD(DisplayPort Configuration Data)地址0x68000~0x68004内,共40比特。HDCP采用了严密的校验方式,每一步都有必要的验证协议。当读取到BKSV后,先对BKSV进行完整性验证和黑名单检测。
HDCP的“撤销密钥”机制用来应对密钥泄漏。每个设备的密钥集KSV值都是唯一的,HDCP系统会在收到KSV值后在撤销列表中进行比较和查找,出现在列表中的KSV将被认做非法,导致认证过程的失败。这里的撤销密钥列表将包含在HDCP对应的多媒体数据中并将自动更新。
● 协议第一步:R0(R0’)验证
当KSV检测和验证成功后,系统将进入算法认证的第一步。其认证协议结构如图4所示。
图4 密钥交换认证协议图
其中Km=∑Akeys over Bksv和Km’=∑Bkeys over Aksv 是一种密钥选择机制。接收端的KSV被认为合法后,发送端和接收端都会通过自己的私钥和相应的KSV计算出一个56比特的公钥Km,这里把接收端计算出的公钥记为Km’。制造商从HDCP认证组织Digital Content Protection LLC获得私钥和相应的KSV后,会在每一个支持该功能设备中存储这些数据,Km(Km’)的计算就是通过对这些数据进行处理后得到的。
Km(Km’)是给后续计算的准备,在Km和Km’计算完成后,HDCP的加密系统就会根据产生的Km(Km’)和An以及REPEATER位来计算KS(KS’)、M0(M0’)和R0(R0’)。KS(KS’)是一个56比特的HDCP私钥,M0(M0’)是64比特的私钥,在HDCP认证协议的第二步的初始化中需要该参数,R0则是作为HDCP认证协议的计算结果,发送端通过读取接收端计算出的R0’并且与本地计算的R0比较,如果相同则意味着第一步认证协议的成功。
● 协议第二步:中继器认证
在第一部分的认证过程中,发送器在读取接收器的BKSV同时,也读取了DPCD中的一个REPEATER位,HDCP的第二部分是否执行取决于该位。这一位标志着该接收端是否为中继器。如果接收端没有中继功能,HDCP会跳过该验证部分,直接执行认证的第三部分链路完整性检测。第二部分的认证协议框图如图5所示。
图5 中继器认证协议图
当发送端检测到下游是中继器设备时,立即设立起5s的超时定时器。源端设备可以通过抽样或者等待中断的方式来获取中继器的状态,而在这5s之内,中继器就会建立自己的设备KSV列表并且计算V’(哈希算法)。如果5s之内没有完成这些操作,上游设备会认为该次认证失败。