HDCP认证过程

HDCP High-bandwidth Digital Content Protection System 的简称,即:高清数字内容保护系统。HDCP 是用于保护DVIDigital Visual Interface)视频发送器和接收器之间的传输的视频信号。除此之外HDCP还可以用于DVI 在职攻读硕士视频发送器和视频转发器(Repeater)之间以及DVI视频转发器和视频接收器之间传输的视频信号的保护。本规范只涉及DVI视频发送器和接收器之间的传输的视频信号的HDCP
                                      1
实现方法:
如图1所示,在DVI发送端和DVI 接收端都有一个DVI加密器,在发送端将24位的图像数据ADVI加密器产生的24位伪随机数B,进行异或运算,完成了加密。将得到的值A(XOR)B送入TMDS调制器调制后送出,这样在传输过程中的图像数据就被加密过了,在接收端将收到的信号进行解调,解调后的信号将再与B进行异或运算,根据逻辑运算(A(XOR)B)(XORB = A,这样就将图像信号A 还原出来了,完成了解密。
这个加密方法关键之处在于要保证DVI发送端和接收端的加密数 B 是实时相同的,那么HDCP系统就能正常工作了。为什么说是“实时相同的”呢?因为24位伪随机数B,是实时变化的,在每到来一个场同步信号,发送端和接收端的DVI加密器都将产生一个新的B,且发送端和接收端各自产生的新的 B 图形用户界面数值是相同的。如何保证发送端和接收端的B同步变化呢?如图1,我们可以看到发送端和接收端的DVI加密器硬件是相同的,要让它们输出的B 相同,那就要保证给它们的输入都相同。
如图1 DVI加密器输入有 ANAksv BKsvCTL3An是一个随机,由DVI发送端产生的, AKsv是发送端的密钥选择向量BKsv是接收端的密钥选择向量。每次在HDCP建立时,发送端都会产生一个新的AN,之后将AnAKsv通过DDC 写到接收端,再将接收端的
BKsv读到发送端。这样就完成了“密钥选择向量”的交换。使得接收端和发送端都有相同的ANAKsv BKsv,而CTL3其实是一个同步信号,如图1所示接收端的CTL3 是与发送端的CTL3连接在一起的。这样有了相同的输入,就可以保证有实时相同的 B了。
KEY(密钥)的来源:
不论是接收端还是发送端,都有一个唯一的KEY(密钥),公司的HDCP KEY是由技术管理部统一向DDWG购买的,且由技术管理部统一管理、发放,以保证生产的每一台机器的KEY是唯一的。生产部门根据订单的数量向技术管理部申请一定数量的KEY,并保证生产的每一台机器的KEY都是唯一的。在调试时用到的的KEY,也要单独向技术管理部申请。另外有的带HDCPIC内部已经固化了KEYKEY的唯一性由IC厂家来保证。
    如果DDWG在市场上发现有相同HDCP KEY的机器,那么这些KEY将被屏蔽。生产厂家也会受到相应的惩罚。
接收端:
对于HDCP,接收端要比发送端简单一些。而且在电视中的DVI接口中大部也只是用到接收
端的部分。
硬件:
                                    2
1. 确保DDC 通路的通畅。
因为HDCP要交换密钥选择向量等信息都是通过DDC通道来完成的。
在所有能支持HDCP 芯片都有用于访问 HDCP 模块 SCLSDA,。要保证输入口的DVI 接口的SCLSDA 与之对应连接,因为DVI  DDC5V电平的,如接收端芯片是3.3V 那就要进行电平转换,典型电路如图3
2. 确保CTL3正确连接。
对与CTL3 ,一些TMDS解调芯片就带有HDCP解密功能的芯片,它在芯片内部就已经连接
好了。如TITFP501,但是对于TMDS解调和HDCP解密模块不在同一个芯片内,如AD9887只有TMDS解调功能,而PW181内部有HDCP解密模块,就要保证AD9883CTL3要与PW181CTL3的脚相连接。
3. 确保HDCP接收端芯片能够读到正确的KEY
    每一个KEY都是由一个40bitKSV(密钥选择向量)4056bitkey值组成。共285byte每台接收机中的KEY都是唯一的。一般情况这KEY是存放在接收端单独的EEPROM中的,以便于生产时每台机器的烧写,一些HDCP芯片有专门的 I2C通道用于连接存放KEYEEPROM。如TFP501AD9880KEY是不能以明码的方式存在EEPROM中的,以防止被盗取。所以我们必须将KYE加密后,再烧写到EEPROM中。IC厂家会提供用于加密的软件。例如AD9880 ADI查文红提供了一个KEY加密程序,285byte的原始KEY经过加密后,变成了一个大约300 byte大小的BIN 文件,然后我们将其烧入EEPROM中即可。用于存放BKsvEEPROM要至少为24C04。对于TFP501,明码的加密是由IC自动完成的,我们只要将未加密的KEY直接烧入EEROM中即可。当芯片第一次上电时,TFP501会检测到EEPROM放置的是明码时,于是就会将其读出,进行加密后写回EEPROM,原来只有285
BYTE 的明码经过加密后将生成约300BYTE 的加密码。另外还有一些带HDCP模块的芯片,如PW181,它的KEY存放在与程序共用的EEPROM中,厂家提供了一个用于加密,并将加密后的KEY烧入EEPROM中的程序。还有一种情况是带HDCP模块的IC 内部已经固化了KEY,例如SII9993,每一块芯片都已经含有了唯一的KEY
4.热插拔电路
DVI输入口的热插拔识别脚要通过一个1K电阻上拉到5V电源,以供HDCP发送端设备检测。
软件:
HDCP的交换密钥选择向量和校验等工作都是由发送端的软件来完成的。对于接收端,软件基本上不用做什么事情。例如 TFP501 就完全不用接收端的 MCU 来控制。
对于PW181,由于在切换SOURCE PW181内部的CTL3有时会被断开,这样就造成HDCP不同步。于是软件要将HDCP I2C DISABLE 后,再 ENABLE 促使发送端检测到对HDCP模块的 I2C读写出错,从而触发发送端重新发起鉴证过程,重新同步。
发送端硬件:
1. 确保 DDC 通道的畅通。
确保DVI线中的DDC(SDASCL)与主控CPUI2C 相连。且I2C的电平必须是5V,若为3.3V则也要用图1 的电路将3.3V电平转成5V电平。这组I2C总线必须是单独的一组I2C ,不能与整机系统的I2C 共用,因为考虑到DVI的引线很长,而且要与接收设备相连,有可能出现短路等情况,独立的总线可以避免这一组I2C出现短路等情况时,不影响发送端的系统I2C,从而保证整个电路的正常工作,保证整个系统的可靠性。
2. 保证主控CPU能读到正确的密钥KEY
巴洛特利养母同接收端相同,每个KEY也是唯一的,有的也是经过加密后放置再外部的EEPROM中。而较常用的带DHCPTMDS发送端芯片如SII170,它的KEYspss16.0是由pos系统IC厂家预先固化在芯片中的。
3. 热插拔电路。
DVI中的热插拔线,与主控CPU 的一个中断请求脚(或者为IO口)相连。为了防止这个脚的损坏,要求该脚外加一个由74系列构成的缓冲器,以保护该脚(见图4)。平时为低电平,当有HDCP接收设备插上时,该脚变成高电平,于是发送端CPU能立刻知道,然后开始启动HDCP的鉴证过程。
                   

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

本文发布于:2024-09-24 03:27:57,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/258385.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:发送   芯片   加密   接收端   保证   用于
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议