HDCP认证过程.doc

上传人:博****1 文档编号:560628403 上传时间:2023-12-03 格式:DOC 页数:4 大小:177.50KB
返回 下载 相关 举报
HDCP认证过程.doc_第1页
第1页 / 共4页
HDCP认证过程.doc_第2页
第2页 / 共4页
HDCP认证过程.doc_第3页
第3页 / 共4页
HDCP认证过程.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《HDCP认证过程.doc》由会员分享,可在线阅读,更多相关《HDCP认证过程.doc(4页珍藏版)》请在金锄头文库上搜索。

1、HDCP 是High-bandwidth Digital Content Protection System 的简称,即:高清数字内容保护系统。HDCP 是用于保护DVI(Digital Visual Interface)视频发送器和接收器之间的传输的视频信号。除此之外HDCP还可以用于DVI 视频发送器和视频转发器(Repeater)之间以及DVI视频转发器和视频接收器之间传输的视频信号的保护。本规范只涉及DVI视频发送器和接收器之间的传输的视频信号的HDCP。 图 1实现方法:如图1所示,在DVI发送端和DVI 接收端都有一个DVI加密器,在发送端将24位的图像数据A与DVI加密器产生的2

2、4位伪随机数B,进行异或运算,完成了加密。将得到的值A(XOR)B送入TMDS调制器调制后送出,这样在传输过程中的图像数据就被加密过了,在接收端将收到的信号进行解调,解调后的信号将再与B进行异或运算,根据逻辑运算(A(XOR)B)(XOR)B = A,这样就将图像信号A 还原出来了,完成了解密。这个加密方法关键之处在于要保证DVI发送端和接收端的加密数 B 是实时相同的,那么HDCP系统就能正常工作了。为什么说是“实时相同的”呢?因为24位伪随机数B,是实时变化的,在每到来一个场同步信号,发送端和接收端的DVI加密器都将产生一个新的B,且发送端和接收端各自产生的新的 B 数值是相同的。如何保证

3、发送端和接收端的B同步变化呢?如图1,我们可以看到发送端和接收端的DVI加密器硬件是相同的,要让它们输出的B 相同,那就要保证给它们的输入都相同。如图1 DVI加密器输入有 AN,Aksv, BKsv和CTL3,An是一个随机,由DVI发送端产生的, AKsv是发送端的密钥选择向量,BKsv是接收端的密钥选择向量。每次在HDCP建立时,发送端都会产生一个新的AN,之后将An和AKsv通过DDC 写到接收端,再将接收端的BKsv读到发送端。这样就完成了“密钥选择向量”的交换。使得接收端和发送端都有相同的AN,AKsv, BKsv,而CTL3其实是一个同步信号,如图1所示接收端的CTL3 是与发送

4、端的CTL3连接在一起的。这样有了相同的输入,就可以保证有实时相同的 B了。KEY(密钥)的来源:不论是接收端还是发送端,都有一个唯一的KEY(密钥),公司的HDCP KEY是由技术管理部统一向DDWG购买的,且由技术管理部统一管理、发放,以保证生产的每一台机器的KEY是唯一的。生产部门根据订单的数量向技术管理部申请一定数量的KEY,并保证生产的每一台机器的KEY都是唯一的。在调试时用到的的KEY,也要单独向技术管理部申请。另外有的带HDCP的IC内部已经固化了KEY,KEY的唯一性由IC厂家来保证。 如果DDWG在市场上发现有相同HDCP KEY的机器,那么这些KEY将被屏蔽。生产厂家也会受

5、到相应的惩罚。接收端:对于HDCP,接收端要比发送端简单一些。而且在电视中的DVI接口中大部也只是用到接收端的部分。硬件: 图 21 确保DDC 通路的通畅。因为HDCP要交换密钥选择向量等信息都是通过DDC通道来完成的。在所有能支持HDCP 的芯片都有用于访问 HDCP 模块 的 SCL和SDA,。要保证输入口的DVI 接口的SCL和SDA 与之对应连接,因为DVI DDC是5V电平的,如接收端芯片是3.3V 那就要进行电平转换,典型电路如图3。2 确保CTL3正确连接。对与CTL3 ,一些TMDS解调芯片就带有HDCP解密功能的芯片,它在芯片内部就已经连接好了。如TI的TFP501,但是对

6、于TMDS解调和HDCP解密模块不在同一个芯片内,如AD9887只有TMDS解调功能,而PW181内部有HDCP解密模块,就要保证AD9883的CTL3要与PW181的CTL3的脚相连接。3. 确保HDCP接收端芯片能够读到正确的KEY。 每一个KEY都是由一个40bit的KSV(密钥选择向量)和40个56bit的key值组成。共285个byte。每台接收机中的KEY都是唯一的。一般情况这KEY是存放在接收端单独的EEPROM中的,以便于生产时每台机器的烧写,一些HDCP芯片有专门的 I2C通道用于连接存放KEY的EEPROM。如TFP501、AD9880。KEY是不能以明码的方式存在EEPR

7、OM中的,以防止被盗取。所以我们必须将KYE加密后,再烧写到EEPROM中。IC厂家会提供用于加密的软件。例如AD9880 ,ADI提供了一个KEY加密程序,285byte的原始KEY经过加密后,变成了一个大约300 byte大小的BIN 文件,然后我们将其烧入EEPROM中即可。用于存放BKsv的EEPROM要至少为24C04。对于TFP501,明码的加密是由IC自动完成的,我们只要将未加密的KEY直接烧入EEROM中即可。当芯片第一次上电时,TFP501会检测到EEPROM放置的是明码时,于是就会将其读出,进行加密后写回EEPROM,原来只有285个BYTE 的明码经过加密后将生成约300

8、个BYTE 的加密码。另外还有一些带HDCP模块的芯片,如PW181,它的KEY存放在与程序共用的EEPROM中,厂家提供了一个用于加密,并将加密后的KEY烧入EEPROM中的程序。还有一种情况是带HDCP模块的IC 内部已经固化了KEY,例如SII9993,每一块芯片都已经含有了唯一的KEY。4热插拔电路DVI输入口的热插拔识别脚要通过一个1K电阻上拉到5V电源,以供HDCP发送端设备检测。软件:HDCP的交换密钥选择向量和校验等工作都是由发送端的软件来完成的。对于接收端,软件基本上不用做什么事情。例如 TFP501 就完全不用接收端的 MCU 来控制。对于PW181,由于在切换SOURCE

9、 时PW181内部的CTL3有时会被断开,这样就造成HDCP不同步。于是软件要将HDCP的 I2C DISABLE 后,再 ENABLE 促使发送端检测到对HDCP模块的 I2C读写出错,从而触发发送端重新发起鉴证过程,重新同步。发送端硬件:1 确保 DDC 通道的畅通。确保DVI线中的DDC(SDA,SCL)与主控CPU的I2C 相连。且I2C的电平必须是5V,若为3.3V则也要用图1 的电路将3.3V电平转成5V电平。这组I2C总线必须是单独的一组I2C ,不能与整机系统的I2C 共用,因为考虑到DVI的引线很长,而且要与接收设备相连,有可能出现短路等情况,独立的总线可以避免这一组I2C出

10、现短路等情况时,不影响发送端的系统I2C,从而保证整个电路的正常工作,保证整个系统的可靠性。2. 保证主控CPU能读到正确的密钥KEY。 同接收端相同,每个KEY也是唯一的,有的也是经过加密后放置再外部的EEPROM中。而较常用的带DHCP的TMDS发送端芯片如SII170,它的KEY是由IC厂家预先固化在芯片中的。3 热插拔电路。DVI中的热插拔线,与主控CPU 的一个中断请求脚(或者为IO口)相连。为了防止这个脚的损坏,要求该脚外加一个由74系列构成的缓冲器,以保护该脚(见图4)。平时为低电平,当有HDCP接收设备插上时,该脚变成高电平,于是发送端CPU能立刻知道,然后开始启动HDCP的鉴

11、证过程。 图4发送端软件:发送端CPU是HDCP的主控设备,HDCP的监证和校验过程都是由它来完成的。下面详细说明发送端HDCP的过程。A、监证过程(参见图5)1、 打开芯片随机数发生起,生成一个伪随机An。2、 从HDCP发送端芯片读取An和AKsv。3、 通过DDC的I2C 通道读取接收端的BKsv。4、 检查BKsv是否合法。5、 将BKsv写入发送端芯片。6、 将An和AKsv写入接收端芯片。7、 延迟一段时间,等待双方HDCP模块计算R0。8、 从接收芯片读出R0,从发送芯片读出R0,比较R0和R0是否相等。9、 若相等则将发送端芯片加密开关打开,开始加密数据。否则从 1、重新开始。B、检查连接完整性1、每隔两秒种,读取发送端的R0和接收端的R0。进行比较。2、若两R0不等,则重新发起监证过程。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号