zoukankan      html  css  js  c++  java
  • CAS解扰小结

    1、每个ts数据包由:1、包头 2、包数据
      包头有个字段 PID ,该字段指示包数据的类型。比如说:
      PID 为 0x0000 包数据的类型就是 PAT表
      PID 为 0x0001 包数据的类型就是 CAT表

    2、PAT表定义了当前TS流中所有的节目,其PID为0x0000,
    要查寻找节目必须从PAT表开始查找。也就是说每个频点有且只有一个PAT表

    3、当包数据为PAT表时,PAT表主要包含该频点下面的每个节目对应的号码和PMT的PID值,以及一个NIT表的PID。
    当PAT表的program_number的值为0时,获得的是NIT表的PID。
    当PAT表的program_number的值大于0时,获得的是PMT表的PID。
    机顶盒可以根据获得的PID在ts流中找到对应的ts包。该ts包的包数据就是对应的表。

    4、使用SK加密后的CW形成ECM,使用PDK加密后的SK形成EMM。

    5、解扰:就是解密EMM和ECM的到CW,并用CW对加扰的流进行解扰的过程。
    1、在信号的接收端,解码器首先在传送流中查找到PMT和CAT表,从中获取到EMM_PIDS,ECM_PIDS,CASystemIDS
    等信息.
    2、根据EMM_PID,找到相应的加密的EMM信息,智能卡中存有加密系统号和ECM密钥,EMM密钥等,智能卡首先
    使用EMM密钥对加密的EMM解密,根据解出的EMM信息来确定本智能卡是否被授权看该套节目,如没授权则不能进行
    后续的解密,也不就不能收看该节目.
    3、如该卡已被授权,则利用ECM_PID,找到相应的加密的ECM信息,利用智能卡的ECM密钥对ECM进行解密,得到
    控制字CW.
    4、利用CW解扰。

    ECM和EMM怎么获取?
    1、前面提到在传输流中查找PMT表和CAT表,CAT的PID为0x0001,所以可以直接在传输流中直接查找。而PMT表则需要
    先获取PAT表,从PAT表的program_number 和 program_map_pid字段中,获取每个节目号码对应的PID,也就是PMT
    表的PID,由此我0们就可以查找获得PMT表。
    2、接收到相应的PMT和CAT表,这两个表中可能会存在CA_descriptor(){加密节目的PMT表会出现}的描述符,通过该描
    述符号,可以获取到对应的EMM_PIDS,ECM_PIDS,CASystemIDS。
    CA_system_ID: 表示适用于相关ECM和EMM流的相关的CA系统类型(CA厂家标识符).
    CA_PID: PMT表中的该描述信息为ECM_PID, CAT 表中的该描述信息为EMM_PID.
    一般来说,ecm table id为0x80/0x81,emm table id为0x82~0x8F这个值是由ca厂家决定的。

    Slot说明:
    1、Slot可以把其看成一个管理对象,管理PID、Filter、Buffer。
    2、一个Slot对应一个PID,一个Buffer空间,但可以对应多个Filter。

  • 相关阅读:
    关于故事和段子
    SQLserver2008数据库备份和还原问题(还原是必须有完整备份)
    百度文库破解方法
    如何识别病毒,转自百度文库,千辛万苦破解出来的
    20个人艰不拆的事实:知道真相的我眼泪掉下来 T.T
    linux学习网站分享
    个人对于腾讯和优酷的看法
    今天去客户现场的一些感想
    基于 Blazui 的 Blazor 后台管理模板 Blazui.Admin 正式尝鲜
    新手福利!Blazor 从入门到砖家系列教程(你真的可以成为砖家)
  • 原文地址:https://www.cnblogs.com/ThatsMyTiger/p/7373441.html
Copyright © 2011-2022 走看看