机顶盒CA解密流程

1 CA系统的关键技术

在CA系统中,有两项最为关键的技术:一是加扰(Scrambling)和解扰(Descrambling)的方法。加解扰技使未被授权的用户无法获取该服务;二是控制解扰,在发送端提供一个加密信息,使被授权的用户端解扰器能以此来对数据解密。该信息受CA系统控制,并以加密形式配置在传输流信息中以防止非授权用户直接利用该信息进行解扰。

加扰的通常做法是在发送端使用加扰序列对视频、音频或者数据码流进行干扰,将数据打乱。加扰序列由伪随机序列发生器产生,在初始条件已知的情况下,可以推测出伪随机序列发生器产生的加扰序列。伪随机序列发生器的初始条件受控于控制字(Control Word)。在接收端也有一个同样的伪随机序列发生器,如果将控制字CW发送给这个伪随机序列发生器,那么就可以获得解扰序列,然后再用解扰序列恢复原始信号。所以说,节目有条件接收的核心是控制字CW的传输。为了实现保密,必须将控制字进行加密处理后传输。接收端在得到授权后,才能应用解密程序重新生成这个控制字。


2 控制字CW的加密机制

因为CW是随加扰信息一起通过公用网传输,任何人都可以读取并研究它,CW容易破解,所以对CW本身要用一个加密密钥,通过加密算法对它进行加密保护。在具体应用中,这个密钥可以按照网络经营商要求经常加以改变,通常由服务商提供(数码、同方等),用来控制其提供的服务,所以把它称为业务密钥(SK, Service Key。SK的使用一般与用户付费条件有关。

CW虽已由SK加密,但这个密钥如果仍可以让任何人读取,那就意味着特定服务的定购者和非定购者将享有同等权利,网络运算商还是难以控制到特定的用户,安全性仍然存在问题,必须对SK进行再加密保护。这个加密过程完全按照各个用户特征来进行,因为这个密钥是由个人特征确定的,常常称为个人分配密钥(PDK, Personal Distribute Key。PDK一般由CA系统设备自动产生并严格控制,在终端设备处PDK一般由网络运营商通过CA系统提供的专用设备烧入解扰器的PROM中,不能再读出。为了能提供不同级别、不同类型的服务,一套CA系统往往为每个用户分配好几个PDK,来满足丰富的业务需求。

在已实际运营的多套CA系统(主要在欧美)中,运营商对终端用户的加密授权方式有很多种,如人工授权、磁卡授权、IC卡授权、智能卡授权、中心集中寻址授权(由控制中心直接寻址授权,不用插卡授权)、智能卡和中心授权共用的授权方式等。智能卡授权方式是目前机顶盒市场的主流,也被我国确定为我国入网设备的标准配件。


3 MPEG-2数字电视系统中条件接收的实现

在采用MPEG-2标准的数字电视系统中,与节目流CA系统相关的两个数据流是:授权控制信息(ECM, Entitle Control Message)和授权管理信息(EMM, Entitle Manage Message)。由SK加密后的CW在ECM中传送,ECM中还包括节目来源、时间、内容分类和节目价格等信息。对CW加密的SK在EMM中传送,SK在传送前要经过PDK的加密处理,EMM中还包含地址、用户授权信息。

在TS(Transport Stream)流中,PSI(Program Specific Information)被分为四类:PAT(Program Association Table)表, PMT(Program Map Table)表,NIT表(Net Information Table)以及CAT表(Conditional Access Table)。其中,PMTCAT与条件接受密切相关

为了更加地说明问题,首先介绍一下CA descriptor(CA描述子),如表1所示。如果某原始流被加密,含有此原始流的节目中一定有CA descriptor。如果任何CA管理信息(如EMM)和原始特殊流信息(如ECM)存在于TS流中,那么在相应的PMT中一定有CA descriptor。

表1 CA descriptor


注:CA描述子中的Descriprot_tag的值为9。通过这个标志位可以将CA描述子与其他的描述子区别开来,如视频流描述子、音频流描述子等。另外,CA描述子中的CA_system_ID用来表示适用于相关ECM和EMM流的CA系统类型。DVB Project成立了专门的组织负责向不同的解码器生产商分配不同的CA_system_ID值。这样的话,一套数字码流可以将不同CA系统的密钥同时传送给不同的机顶盒用户群。

 当CA描述子出现在PMT表中时,CA_PID指向含有和ECM信息相关的节目分组。当CA描述子出现在CAT表中时,CA_PID指向含有和EMM信息相关的节目分组。

 由此可以清楚地知道,解码器的解密机制是:当Smart Card插入STB时,解码器将从中读取CA_system_ID,并查找在CAT表(PID号为0X01)内的CA描述子中与该CA_system_ID对应的CA_PID(即EMM码流的PID)。EMM码流中包含了经过PDK加密处理的SK。PDK固化在Smart Card中,并以加密形式存储,用户需提供口令方能使用其进行解密。然后,Smart Card将解密出SK。

 完成以上步骤后,解码器再查找在PMT表内的CA描述子中与上述CA_system_ID对应的CA_PID( 即ECM码流的PID)。ECM码流中包含了由SK加密处理后的CW信息。用得到的SK对ECM解密就可以得到CW。将CW填入解码芯片的相应寄存器中,就可以对码流数据进行解扰,恢复出原始信号。

【理解】

PDK相当于private key(私钥),而SK相当于public key(公钥)。为了避免特定服务被未订购者接收,还应该对SK进行加密,而只有拥有PDK的用户才能进行解密,从而达到只有订购者才能接收到SK的目的。

【助记】

(1)EMM:授权管理信息,顾名思义,它是管理授权的信息。这个授权即为SK,为了使避免这个授权信息被未授权者获取,就需要对其进行管理,即通过PDK对其进行加密,即PDK_SK。

另外,EMM可以用来实现EMM fingerprint,并指定显示内容、时间、间隔、字符颜色、背景颜色、闪烁等属性。

(2)ECM:授权控制信息,顾名思义,它是控制授权的信息。这个“控制”即为最终解扰的关键。“控制”是通过CW来实现的,而只有获得授权信息的用户才能解密出CW,于是ECM中存放的便是SK_CW。

另外,ECM可以用来实现ECM fingerprint,Smart Card卡号的固定fingerprint显示功能,并控制显示的起始时间和终止时间。

(3)fingerprint的作用:如果某用户将带有fingerprint的节目传到网上或用于其它用途,那么相关的服务供应商可以根据fingerprint上的卡号(实名制)来追究该用户的法律责任。

【流程图】 


4 加扰

MPEG-2数据码流的加扰可以分为两层:一是PES层的加扰,一是TS层的加扰。TS层的加扰只针对TS数据码流的有效负载(payload),而TS码流中的PSI信息,包括PAT、PMT、NIT、CAT以及私有分段(包括ECM、EMM)都不应该被加扰。当然,TS流的头字段(包括调整字段)也不应该被加扰。经过加扰后的TS码流应该在头字段中定义加密控制字。

5 加密算法的选用

(1)控制字的加密:对于控制字的加密,需要一定强度、处理迅速的加密算法,主要采用私有密钥(个人分配密钥,PDK)加密体制中的一些加密算法,如:DES算法或者IDEA算法。

(2) 业务密钥的加密:业务密钥的改变频率要远小于控制字,因此对其加密的算法处理速度可以较慢,但由于一个业务密钥要使用较长时间,其安全性要求更高,需选用 一些高强度的加密算法。公开密钥体制的加密算法在此可得到较好的应用,因为公开密钥体制加密算法虽然处理速率一般较秘密密钥体制慢,但大都具有较高的加密 强度,可以满足业务密钥对安全性的更高要求。另外,采用公开密钥体制加密,经营者不必须传输用户的私有密钥,只需知道用户的公开密钥就可对业务密钥进行加 密,用户使用自己的私有密钥即可解密。这样可以在用户端产生一对密钥,只要将公钥传给发送端经核实可用后即可,而解密的关键私有密钥不需进行一次传输,可 以提高系统的安全性。在公钥体制下还可实现数字签名、数字证书等功能,对于系统的业务拓宽、业务范围,提供在线支付等功能也非常有利。

  目前主要的公钥加密算法主要有RSA公钥加密算法,背包公钥密码系统,勒宾(Rabin)密码,麦克黎斯(Mceliece)公钥密码,椭圆曲线公钥密码等,其中RSA公钥加密算法应用较广。


================================================================================

关于这个解扰流程,对于SK那一段还有一点疑问。

1. SK的引入问题。 CW为何要先用SK加密,然后再由PDK加密?

因为PDK加密是非对称加密, 就已经足够安全了,为何不直接用PDK对CW加密。


假如直接用PDK加密CW,由于PDK的数量巨大,而CW的变更较快,加密后产生的数据很大,由于SK是针对产品(节目)的,数据量小,采用SK加密CW生成的ECM数据量相对较小,由于SK变化缓慢,采用PDK加密SK生成的EMM数据量相对较小,根据CW和SK的轮播周期,你可以大致比较一下,引入SK以后,ECM+EMM的数据量与直接采用PDK加密CW的数据量,就应该明白了为什么要引入SK。

假如有10个pdk,再假设某节目CW字每分钟变化100次,这样一分钟就需要100*10个数据量,而如果假设用SK再对CW进行加密,这段时间内SK是不变的,面传输的数据量就变成了1*10。


  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CSMA/CACarrier Sense Multiple Access with Collision Avoidance,带有碰撞避免的载波监听多路访问)是一种用于无线局域网(WLAN)中的协议,用于控制多个终端设备在共享的无线媒体上进行数据传输的流程。以下是CSMA/CA协议的仿真流程: 1. 初始化:设定仿真环境的参数,如终端数量、传输速率、媒体传输范围等。 2. 选择发送设备:仿真开始时,环境中的多个终端设备准备发送数据。根据算法,选择一个终端设备作为发送设备。 3. 载波监听:发送设备开始监听媒体传输介质,以确定是否有其他设备正在发送数据。如果媒体上检测到信号,表明其他设备正在传输数据,则发送设备等到是空闲的。 4. 渐进退避:如果媒体传输介质空闲,则发送设备开始随等待一段时间。等待时间根据指数增加的退避算法来确定,以避免多个设备同时发生碰撞。 5. 发送数据:等待时间过后,发送设备开始传输数据包。数据包包含源和目的地址、数据内容等。 6. 碰撞检测:发送设备在传输数据时,会不断监听媒体上的信号。如果检测到其他设备也在传输数据,发生碰撞。发送设备则停止传输,并等待退避时间。 7. 重新传输:在发生碰撞后,发送设备会重新选择一个退避时间,并重新开始传输数据。这个过程会重复几次,直到成功传输数据。 8. 数据接收:目标设备收到数据包后,进行数据解析和处理。如果数据包有误,则发送一个接收失败的信号给发送设备。 9. 仿真结束:重复步骤2到8,直到所有终端设备完成数据传输。 通过对CSMA/CA协议的仿真流程的模拟,可以评估协议在实际无线局域网中的性能,包括数据传输的可靠性、传输时间、碰撞次数等指标,进而优化和改进该协议的设计。 ### 回答2: CSMA/CACarrier Sense Multiple Access with Collision Avoidance)协议是一种用于无线网络中数据传输的协议。下面是CSMA/CA协议的仿真流程: 1. 设置仿真参数:确定仿真环境和网络拓扑,包括无线信道的传输速率、传输范围、网络节点数等。 2. 初始化节点:为每个节点分配初始参数,包括节点的传输功率、传输范围、退避窗口等。节点初始化后,开始监听无线信道。 3. 检测信道:每个节点会定期监听无线信道,检测信道上是否有其他节点正在传输数据。 4. 数据传输:当节点检测到信道上没有其他节点正在传输数据时,它可以开始发送数据包。数据包被分成较小的片段进行传输,并且需要等待一段时间以获得传输许可。 5. 传输冲突避免:如果多个节点在同一时间尝试发送数据包,可能会产生冲突。节点会根据设置的退避窗口大小进行冲突避免,即在传输冲突发生时,节点会等待一段随时间后再次尝试发送数据包。 6. 接收数据:当节点成功将数据包发送给目标节点时,目标节点会接收到该数据包。目标节点可能会发送确认信号给发送节点,以告知发送是否成功。 7. 更新状态:每个节点都会根据接收到的数据包和确认信号来更新自身状态,包括传输成功率、信道利用率等。 8. 仿真结束:仿真可以设置一个时间限制或达到某个停止条件后终止。在仿真结束时,可以收集并分析节点的性能数据,如数据包传输成功率、传输时延等。 通过对CSMA/CA协议的仿真,可以评估和改进该协议在无线网络中的性能,提高数据传输的可靠性和效率。 ### 回答3: CSMA/CACarrier Sense Multiple Access with Collision Avoidance)协议是一种用于无线局域网(WLAN)的媒体访问控制协议。以下是CSMA/CA协议的仿真流程: 1. 设置网络拓扑:首先,确定需要仿真的网络拓扑,包括无线AP(接入点)和终端设备。确定AP的位置、传输范围和终端设备的数量。 2. 初始化网络参数:为AP和终端设备设置初始的传输参数,包括功率、传输速率和网络延迟。这些参数将影响设备之间的通信质量和传输距离。 3. 随选择信道:在每个时间片内,终端设备需要随选择可用的信道进行传输。选择过程可以使用随数生成算法,确保公平性和均衡性。 4. 载波侦听:当终端设备准备好发送数据时,首先需要监听信道是否被其他设备占用。这个过程称为载波侦听,用于检测网络中是否有其他设备正在发送数据。 5. 碰撞检测与避免:如果某个终端设备在发送数据前进行载波侦听时发现信道已被占用,则会延迟发送数据,等待其他设备发送完成。这样可以避免碰撞和数据丢失。 6. 数据传输与确认:当终端设备空闲时,可以开始发送数据。发送数据过程中,设备会发送确认信息给接收方,以确保数据的正确接收。如果接收方收到数据后回复确认信息,发送方就知道数据已经成功传输。 7. 性能评估与优化:通过仿真实验,可以收集大量的数据,例如吞吐量、时延和丢包率等,用于评估协议的性能。根据评估结果,可以对CSMA/CA协议进行优化,例如调整参数、改进算法等。 8. 仿真结果分析:最后,对仿真结果进行分析,评估CSMA/CA协议的性能优势和不足之处,并提出改进和优化的建议。 通过以上的仿真流程,可以更好地理解CSMA/CA协议的原理和工作方式,并对其性能进行评估和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值