条件接收
条件接收的过程简单的说就是运行商在发送端对码流进行加扰,而在接收端,授权用户获取密钥进行解扰。
为了安全以及一些其它方面原因,这里做了三层控制:
1、码流加扰
1)、加扰过程是在发送端用一个伪随机序列(CW,Control Word)对复用后的TS流进行实时扰乱控制,使用加扰序列控制对打包的图像信号进行扰乱
2)、接收端必须获得CW,再次对码流进行位运算才能将码流还原
3)、只有授权用户才能获取CW,才能对码流进行解扰
4)、CW如果明文传输,则很容易被破解,因此提出需要对CW进行加密,在码流中传送的是密文信息。
如何保密传输CW?如何使只有授权用户才能获取CW呢,这就是第二层的目的了
2、访问控制(CW加密)
1)、发送端:采用SK(加密密钥)对CW进行加密,传输加密后的数据(ECM)
2)、接收端:必须先获取SK,然后运用SK对ECM进行解密,得到CW
如何保证只有授权用户才能得到SK?所以就有了第三层了。
3、授权管理(SK加密)
每一授权用户将获得一张IC卡,在卡内保存有一个或多个PDK(个人密钥),在发送端运用PDK对SK进行加密,生成数据以EMM的形式打包进码流中。这样保证只有拥用该PDK的用户才能解密得到SK。
CA与智能卡是配合使用的,即一个运营环境中,机顶盒上的智能卡与局端配合的CA是同一公司的产品,是成套使用的。原因是产生ECM与EMM的算法都是CA厂家的核心机密,不可能外露
注:之所以要引入SK,是因为假如直接用PDK加密CW,由于PDK的数量巨大,而CW的变更较快,加密后产生的数据很大,由于SK是针对产品(节目)的,数据量小,采用SK加密CW生成的ECM数据量相对较小,由于SK变化缓慢,采用PDK加密SK生成的EMM数据量相对较小,根据CW和SK的轮播周期,你可以大致比较一下,引入SK以后,ECM+EMM的数据量与直接采用PDK加密CW的数据量,就应该明白了为什么要引入SK。这就相当于1000乘以1000,远大于这两个1000乘以一个50的和。
举个例子,假如有10个pdk,再假设某节目CW字每分钟变化100次,这样一分钟就需要100*10个数据量,而如果假设用SK再对CW进行加密,这段时间内SK是不变的,面传输的数据量就变成了1*10。也就是把CW字的变化给透明化了。
强调几点:
一个用户(智能卡)拥有一个唯一的PDK
一个产品(或者说套餐)在一长段时间内对应一个SK
一个加扰单元(被加扰对象)在某一瞬时对应一个CW
emm的pid从CAT表中得到的, ECM的pid通过检测pmt表中descriptor_tag为0x09的字段得到的,有了这些PID,就可以从码流中检出EMM流和ECM流,
EMM流是包含了所有智能卡的EMM数据的(因为不知道用户所用的智能卡),数据量比较大。因此智能卡从EMM流中,根据自身的卡地址,过滤出是发送给自己的EMM信息,然后解得SK。
ECM流是一个加扰单元(即被加扰的对象)对应一个ECM流(只是用户当前所选择频道的,所以切台的时候ecm_pid会变化),因此当取得SK后,就可从ECM流中解出CW,从而对码流进行解扰。
CA过程通过CW控制字(节目流进行解扰的钥匙)将TS加密,终端通过它解密.
前端将CW加密后送到终端.
终端通过智卡,解出CW控制字,并将控制字送解码器还原TS的过程.
阅读(1254) | 评论(0) | 转发(0) |