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。

时间: 2024-10-09 16:56:25

CAS解扰小结的相关文章

基于CAS实现单点登录(SSO):CAS+LDAP实现单点登录认证

[一].概述 CAS是N个系统的中心认证入口,而贯穿多个系统的用户信息是共用的,应该被单独维护,而这些信息可能属于不用的系统,不用的组织,不用的国家,从而形成了树形结构,而使用关系型数据库维护树形结构信息是它的弱点,这就是本文CAS和LDAP整合的初衷. 本来主要详细是介绍CAS和LDAP整合实现单点登录的步骤. [二].详细步骤 1.LDAP安装配置 详见: 介绍openLDAP在windows上的安装配置 安装配置,添加部分测试数据如下: 2.CAS的基础安装配置: 见SSO之CAS单点登录

SSO(单点登录)—CAS总结

概述 SSO(Single Sign On),单点登录,多个具有独立运行的系统组成一个大系统,实现用户登录一次,即可随意访问该大系统的子系统.单点登录的具体实现有多种方式,我们可以自己实现,也可以采用第三方提供的框架. 自定义SSO 方式一 部署图 具体实现过程 1.用户通过浏览器,输入用户名和密码进行登录 2.权限系统接收到用户名和密码后,进行校验,校验通过后,将相应的用户信息,写入到Cookie中 3.登录后的用户此时访问考试系统时,考试系统先从Cookie中获取相应的值,然后判断其是否登录

java并发包小结(一)

java.util.concurrent 包含许多线程安全.高性能的并发构建块.换句话讲,创建 java.util.concurrent 的目的就是要实现 Collection 框架对数据结构所执行的并发操作.通过提供一组可靠的.高性能并发构建块,开发人员可以提高并发类的线程安全.可伸缩性.性能.可读性和可靠性. JDK 5.0 中的并发改进可以分为三组:    1. JVM 级别更改.大多数现代处理器对并发对某一硬件级别提供支持,通常以 compare-and-swap (CAS)指令形式.C

通过连接池和字段索引,提升单点登录cas的性能

cas是多个系统的中心认证,认证的过程就是用户的登录信息和数据库中的信息匹对的过程,如果某一时刻登录的人数很多,需要频繁的读取数据库,数据库连接的管理就是问题. 前天测试评教时无意之中把单点登录的问题暴露出来了,平时通过cas登录管理端是没有问题的,而200人同时通过cas登陆学生端时出现异常 org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested excep

原子类通过(CAS和volatile)实现单共享变量的线程安全

对于CAS是一种有别于synchronized的一种乐观锁实现.是一种非阻塞锁算法.CAS通过与原始预期值进行比较来确定是否修改主内存中数据的一种方案.基于一个线程的失败或者挂起不应该影响其他线程的失败或挂起这样的前提,而提出硬件层次的实现数据处理的互斥.可以自动更新共享数据,而且能够检测到其他线程的干扰,而 compareAndSet() 就用这些代替了锁定.对于实现CAS的原子类(AtomicInteger等)不仅仅对于单个贡献变量保证了原子性,同时借助volatile变量让共享变量保持可见

转载:无锁队列的实现(CAS同步)

转自:http://coolshell.cn/articles/8239.html 关于无锁队列的实现,网上有很多文章,虽然本文可能和那些文章有所重复,但是我还是想以我自己的方式把这些文章中的重要的知识点串起来和大家讲一讲这个技术.下面开始正文. 关于CAS等原子操作 在开始说无锁队列之前,我们需要知道一个很重要的技术就是CAS操作——Compare & Set,或是 Compare & Swap,现在几乎所有的CPU指令都支持CAS的原子操作,X86下对应的是 CMPXCHG 汇编指令.

CAS客户端整合(二) Zabbix

Zabbix是一个强大的服务器/交换机监控应用,有zabbix-server, zabbix-client, zabbix-web 三部分.zabbix-web管理端是用php写的. 前文参考:CAS客户端整合(一) Discuz! 登录流程 修改代码前例行先确定登录流程 原登录过程 Zabbix的登录流程跟 Discuz 类似.系统从 cookie/session 中读取用户会话id,如果用户为 guest ,只提供部分页面访问.需要访问受限资源,需要再登录 CAS登录过程 Zabbix通过c

ConcurrentHashMap 源码阅读小结

前言 每一次总结都意味着重新开始,同时也是为了更好的开始.ConcurrentHashMap 一直是我心中的痛.虽然不敢说完全读懂了,但也看了几个重要的方法,有不少我觉得比较重要的知识点. 然后呢,放一些楼主写的关于 ConcurrentHashMap 相关源码分析的文章链接: ConcurrentHashMap 扩容分析拾遗 并发编程--ConcurrentHashMap#addCount() 分析 并发编程--ConcurrentHashMap#transfer() 扩容逐行分析 并发编程-

Java高性能编程之CAS与ABA及解决方法

Java高性能编程之CAS与ABA及解决方法 前言 如果喜欢暗色调的界面或者想换换界面,可以看看我在个人博客发布的 Java高性能编程之CAS与ABA及解决方法. CAS概念 CAS,全称Compare And Swap,比较与交换. 属于硬件级别的同步原语,从处理器层面提供了内存操作的原子性. 从概念上,我们可以得出三点.第一,CAS的运作方式(通过比较与交换实现).第二,硬件层面支持,性能肯定不低(当然它也不是银弹).第三,提供原子性,那么它的功能肯定是确保原子性,从而确保线程安全. 实际使