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()的描述符,通過該描
述符號,可以獲取到對應的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。
加解擾技術
加解擾技術 加解擾技術用於對數字節目進行加密和解密。其基本原理是採用加擾控制字加密傳輸的方法,使用者端利用ic卡解密。在mpeg傳輸流中,與控制字傳輸相關的有2個資料流 授權控制資訊 ecms 和授權管理資訊 emms 由業務金鑰 sk 加密處理後的控制字在ecms中傳送,其中包括節目 時間 內容分...
python sorted函式的小練習及解答
前兩天學習了一下socket程式設計,在向某大神請教問題時被嫌棄了,有一種還沒學會走就想跑的感覺。大神說我現在的水平應該去做一些像是操作檔案 序列號等的小練習來加深理解。下面是他給我出的小練習 1 datas sherry 19,female flora 21,female june 15,fema...
每日一小練 數值自乘遞迴解
上得廳堂,下得廚房,寫得 翻得圍牆,歡迎來到睿不可擋的每日一小練!題目 數值自乘遞迴解 內容 假設乙個n與m是正整數,那麼m n就是把m連乘n次,這是乙個非常沒有效率的方法。試試編寫乙個更有效率的程式,應該以少量n 1個乘法作為設計標準。我的解法 上來沒多想,開啟vs2013就敲了起來,問題果然非常...