CA 解密系統原理及流程

1、名詞概念:
接收控制系統/條件接收系統 :該系統的任務是保證DVB業務僅被授權接收的用戶所接收,其主要功能是對信號加擾,對用戶電子密鑰的加密以及建立一個確保被授權的用戶能接收到加擾節目的用戶管理系統
控制字或密鑰:CW (Control Word )
節目映射表:PMT (Program Map Table )
條件接收表:CAT (Conditional  Access Table )
授權控制信息:ECM (Entitlement Control Message )
授權管理信息:EMM (Entitlement Management Message )
脈衝式按次付費電視或者即時付費電視:IPPV(Impluse Pay-per-View )
模擬電視:採用模擬信號調製,中間很容易引入干擾,一套節目使用一個頻點
數字電視:採用數據信號調製,抗干擾性好,一個頻點傳輸6-8套節目,容易加密


2、條件接收系統的組成
整個條件接收系統包括前端碼流加擾加密、傳輸、終端通過條件接收系統進行解擾解密這三大部分,其中關鍵技術就在前端和終端。
  前端碼流加擾加密部分包括有:
→EMM加密器
→ECM加密器
→CW發生器
→TS流加擾器
→複用器


  終端條件接收系統進行解擾解密部分包括有:
→解複用器
→CA系統
→智能卡
→解擾器
→解密器


加擾控制字段:

可以在ts包中的 transport_scrambling_control 值:2b位,ts header第四個字節處

位值  描述

00     不加擾

01     保留

10    用偶密鑰加擾ts包

11    用奇密鑰加擾ts包

PES包中使用 PES_scrambling_control值,其控制與ts相同含義


3、條件接收系統原理圖




三層加密:





發送端:採用PDK對SK進行加密,傳輸加密後的EMM數據
接收端:PDK是存儲在智能卡上的,是智能卡的ID,這是唯一的,機頂盒收到EMM數據採用PDK解出SK


4、條件接收系統工作原理(文字描述)
前端碼流加密加擾工作原理:

1、在信號的發送端,首先由控制字發生器產生控制字(CW),將它提供給加擾器和加密器A。控制字的典型字長爲64bit,每隔2~30s改變一次(CW變化爲5-10s,各家值有所不同)。
2、加擾器根據控制字發生器提供的控制字,對來自複用器的MPEG-2傳送比特流進行加擾運算。此時,加擾器的輸出結果即爲經過擾亂了以後的MPEG-2傳送比特流,控制字就是加擾器加擾所用的密鑰。
3、加密器接收到來自控制字發生器的控制字後,則根據用戶授權系統提供的業務密鑰對控制字進行加密運算,加密器A的輸出結果即爲經過加密以後的控制字,它被稱爲授權控制信息(ECM).
4、用戶管理信息(Management Message)被密鑰EMMK1加密形成授權管理信息(EMM),用戶管理信息由信息提供商的用戶管理系統形成,用戶管理系統用來建立有關用戶的名稱、地址、智能卡號、賬單的信息和當前授權的數據庫等等.
5、經過這樣一個過程產生的ECM和EMM信息均被送至MPEG-2複用器或複用器,與被送至同一複用器的圖像、聲音和數據信號比特流一起打包成MPEG-2傳送比特流輸出


終端解擾解密部分工作原理:
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對加擾的傳送流進行解密,得到正常的MEPG-2傳送流,由解碼器解碼後得到所需的電視,廣播或數字信號.


加擾和加密的區別:
加擾是加擾器使用控制字通過函數運算產生僞隨機序列,對數據進行一些與或運算將數據擾亂。接收終端只有得到控制字才能通過反函數運算將數據還原進行解碼。而加密是爲了有效的保護控制字進行的,通過密鑰或算法對控制字進行加密。終端設備需要得到密鑰或反算法,解出或算出控制字,再進行解擾解密工作。
TS層的加擾:
TS層的加擾只針對TS數據碼流的有效負載(payload),而TS碼流中的PSI信息,包括PAT、PMT、NIT、CAT以及私有分段(包括ECM、EMM)都不應該被加擾。當然,TS流的頭字段(包括調整字段)也不應該被加擾。經過加擾後的TS碼流應該在頭字段中定義加密控制值。


5、PSI數據接收
接收到相應的PMT和CAT表,這兩個表中可能會存在CA_descriptor()的描述符,通過該描述符號,可以獲取到對應的EMM_PIDS,ECM_PIDS,CASystemIDS。

CA_descriptor()介紹:


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廠家決定的。


ca_descriptor 描述字值爲0x09, 下面給個加擾流的具體表數據:




完整接收及播放流程:
1、鎖定指定頻點
2、搜索PAT表
3、搜索CAT及PMT表
4、解析PMT表得到ECM PID值,解析CAT表得到EMM PID值
5、將ECM及EMM送到智能卡解密
6、智能卡返回CW值,機頂盒將CW值設到demux descrambler解擾模塊,還原原始碼流
7、設定音頻pid,視頻pid進行解碼和播放

6、集成ca lib工作
一般利用現有的中間件中CA模塊進行集成,說明一下這種最通常的工作流程
1、提供編譯器及編譯參數,ca廠商提供ca lib/ca header及ca test stream 
2、實現descrambler,smartcard,demux, flash 等模塊接口
3、實現ca lib需要實現的接口函數,一般包含os,filter,descrambler等接口
4、開發一套應用調用ca lib提供函數實現業務呈現
5、調通加擾節目的播放及業務的呈現ok

6、到ca公司進行ca認證,測試ok後進入運營階段


7、補充一下這兩天調試碰到的問題

a、機卡通訊有問題 

       出現sc_send數據成功但無法接收數據,總是報超時錯誤,可能原因

      1、與智能卡設定的波特率有關,一般設定爲4800bits/s或者9600bits/s,而在收到ATR消息一般以atr[2]&0x0f作爲baud factor的調節因子

           【波特率校正因子1、2*n (n=1~16) ,具體設置參考協議D因子和卡特性 】

      2、與智能卡設定的時鐘率因子有關 【時鐘轉率因子372~2048 ,具體設置參考協議的F因子和卡特性】

b、智能卡配對失敗

      請保證智能卡,碼流及CA庫統一,不要用錯了

c、授權信息出現"access denied ",即未授權

      請確認ca卡是不授權且其未過授權時間,其流裏面有授權信息

d、ecm&emm數據未收到或超時

      請先確認碼流中和pid及過濾參數是否正確,可以錄碼流通過專業軟件查看,再 確認demux接口的filter過濾參數是否有問題

e、set key失敗

     一般只要set pid(av)成功,基本上set key 都會成功,這是機頂盒通用的接口,一般不會出問題



原文地址:http://blog.csdn.net/andyhuabing/article/details/7714418
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章