武 一,巴 佳,馬建華
(河北工業大學 信息工程學院,天津 300401)
在如今數字電視機頂盒發展迅猛的時代,我們可以收看的電視節目越來越多,內容也更加豐富多彩。因此,為了滿足不同用戶的需求,也為了保護運營商的利益,需要利用條件接收(CA,conditional access)系統來管理用戶的權限以保證付費的用戶能夠正常的收看電視節目[1]。
但在實際情況下,由于各個地區的電網會下設一些分區,因此可根據光節點的情況將地域上不相鄰的多個光節點設為一個區域,而為了更好的管理各個區域的接收條件,可采取針對每個單獨的區域進行單獨管理的方法來對用戶進行區域鎖定管理,即在A區域購買節目的用戶不能私自將自己的智能卡在B地使用。而對于這種情況,一般地,我們可以將傳輸流(TS)中的表 PMT(Program Map Table)和表 CAT(Conditional Access Tab)中的描述子 CA_descriptor分別改寫,然后通過復用器插入到這些表中[2],但這樣對于CA系統來說改動較大,費時費力。
本文則針對上述情況提出了一種改進型的條件接收,即每個區域單獨擁有自己的中心頻點,在中心頻點中發送相關的區域信息,也就是在NIT表中插入一個專用的數據描述符,用它的的值(REGLOCK)來區分不同的網絡,這樣只需在CA中添加一個判斷條件即可,對CA系統的改寫較簡單,也比較實用。具體做法為:機頂盒首先把從中心頻點NIT表中搜索到的區域信息(即REGLOCK的值)保存下來,然后通過智能卡中的區域信息來進行比較,若相同,則代表了智能卡是在正確的區域使用,用戶則可以收看該區域的節目,若不同,則說明用戶的智能卡在非法區域,因此便不對其節目進行解擾,用戶不能正常收看節目。
實際應用證明,雖然該方法操作簡單,實現較容易,但實用性較強。
我國數字有線電視傳輸采用的是DVB-C標準,模擬的音視頻及其輔助信息在進入有線數字傳輸前,一般要經過兩級編碼:第一級,將所有要傳輸的基本流(ES)和傳輸流(TS)以MPEG-2標準封裝,第二級,采用RS(Reed-solomon codes)編碼和 QAM(Quadrature Amplitude Modulation)調制等方式將數字傳輸流調制為射頻信號再進行傳輸。因此機頂盒所要做的工作簡單說來就是還原這些基本流。
數字電視機頂盒的基本工作原理及條件接收系統在其中的作用:
數字電視機頂盒首先由高頻頭接收來自有線網的射頻信號,使其變成中頻信號,再經過A/D轉換模塊,將接收到的模擬信號轉換為數字信號,自此在機頂盒里傳輸的信號就變為數字信號了,然后將其送入QAM信道解調器進行QAM解調,輸出MPEG-2多節目傳輸流數據,送給解復用器(DMUX模塊),解復用器(DMUX模塊)從多節目輸出流中抽出一個節目的已打包的音視頻基本流數據 (PES),其中包括音頻PES,視頻PES和輔助數據PES。
(這里的音視頻PES有的是已經加擾的,而在解復用器中含有一個解擾引擎,條件接收系統的智能卡可通過啟動解擾引擎對這些加擾的節目進行解擾(其具體做法在下面第三點中給出了詳細說明)。)最后解復用器將整理好的音視頻數據分別送入音視頻解碼器進行解碼,解碼后的音視頻數據再通過D/A轉換模塊即可通過音視頻輸出接口輸出給模擬電視機。
首先在前端通常是采用加擾控制字加密傳輸的方法對節目進行加擾的,然后在用戶端通過智能卡中的控制字來進行解擾[3]。
具體做法是:
在前端,發送的MPEG傳輸流中[4-5],有2個與控制字相關的數據流,一個是授權控制信息(ECM),一個是授權管理信息 (EMM)。首先由業務密鑰 (SK)加密處理后的控制字(CW)在ECM中傳送,其中包括節目的來源、時間、內容分類等節目信息。而對控制字加密的業務密鑰SK則在EMM中傳送,并且業務密鑰SK在傳送前要經過用戶個人分配密鑰(PDK)(在用戶的智能卡中)的加密處理,因此在用戶端就是利用智能卡通過這一系列的解密最后解出ECM中的加擾控制字CW。
具體做法是,在用戶端,智能卡中含有用戶個人分配密鑰(PDK),機頂盒根據 PMT和 CAT表中的 CA_descriptor(描述子),獲得EMM和ECM的PID值,然后從TS流中過濾出ECM和EMM,并通過Smart Card(智能卡)接口送給Smart Card。Smart Card首先讀取用戶個人分配密鑰(PDK),用PDK對EMM解密,取出SK,然后利用SK對ECM進行解密,取出CW,并將CW通過Smart Card接口送給解復用器中的解擾引擎,最后解擾引擎利用CW就可以將已加擾的傳輸流進行解擾[6]。
針對上述提出的問題,文中提出了在NIT表里添加描述子的具體實現方法如下;
首先,在前端的中心機房中,將主頻點NIT表中插入專用數據描述符,將它的值(REGLOCK)用來表示地域信息。然后把主頻點信號分離出來,經過碼流分配器分出多路信號,傳給各分前端的主頻點調制器,該調制器需具備編輯NIT表的功能,然后將其數值修改為本區域的專用區域信息。
前端NIT表中插入的專用數據描述符(REGLOCK)的位置及數值可通過碼流分析儀得到,如圖1所示。

圖1 NIT表中的專用描述符Fig.1 Specific descriptor in the NIT
首先,機頂盒默認的REGLOCK值為0。當我們使用REGLOCK值時需要對系統數據庫進行操作[7]。系統數據庫相當于一個大的結構體,它的最后一項就是REGLOCK的值。當打開系統數據庫時,得到一個變量,若為sysInfo則sysInfo.REGLOCK即為REGLOCK的值,在未對其進行操作前,值為0。
然后在每次開機后,從主頻點NIT表中獲取REGLOCK值(專用數據描述符的 Descriptor_tag=0x5F),我們需要將Private_data_specifior(也就是REGLOCK的值)記錄下來并保存到flash中的系統數據庫里。如果沒有發現NIT表,不改變REGLOCK值。根據圖1,具體軟件解析該描述子的實現如下:

此時得到的Cur_REGLOCK即為NIT表中的REGLOCK值。
最后將該值記錄到flash中的系統數據庫中。
而機頂盒為了與CA通信,可以將結果寫入一個接口函數中,即:

對于CA模塊,則只需通過調用上述接口函數DVTSTBCA_GetNitValue()來得到 REGLOCK的值即可,然后通過REGLOCK的值再來決定下一步是跳過還是進行解擾操作。
該做法應用于智能卡在特定區域收看特定節目的情況下,輔助了CA智能卡對節目進行解擾,其做法簡單易行,目前已應用于部分機頂盒廠商中,實際應用表明其穩定可靠,實用性較強,達到了設計要求。
[1]張晟,郭小勤.數字機頂盒軟件設計[J].中國有線電視,2007(14):1367-1369.
ZHANG Sheng,GUO Xiao-qin.Digital set-top box software design[J].Chinese Cable TV,2007(14):1367-1369.
[2]鄧月明,鄧偉.嵌入式Linux機頂盒及條件接收系統實現研究[J].信息技術,2009(2):5-7.
DENG Yue-ming,DENGWei.Research on set-top-box based on embedded Linux and implementation of conditional access system[J].2009(2):5-7.
[3]趙堅勇.數字電視原理與接收[M].北京:電子工業出版社,2006.
[4]高曉娜,李華.MPEG-2傳輸流復用器的設計[J].電子測量技術,2007(3):120-122.
GAO Xiao-na,LIHua.MPEG-2 transport stream multiplexer design [J].Electronic Measurement Technology,2007 (3):120-122.
[5]任玲,楊杰,朱佩江.MPEG-2傳輸流PSI信息合成和復用技術的實現[J].有線電視技術,2007(2):38-39.
REN Ling,YANG Jie,ZHU Pei-jiang.MPEG-2 transport stream PSI synthesis and multiplexing[J].Cable Television Technology,2007(2):38-39.
[6]楊婕婕,葉宇煌,蘇凱雄.數字機頂盒公共接口的設計與實現[J].有線電視技術,2011(8):104-106.
YANG Jie-jie,YE Yu-huang,SU Kai-xiong.Public interface of the digital set-top box design and implementation[J].Cable Television Technology,2011(8):104-106.
[7]尚弘,蔣勛.機頂盒中基于數據庫的信息管理[J].無錫南洋學院學報,2008,6(36):36-39.
SHANG Hong,JIANG Xun.The set-top boxes based on database informationmanagement[J].Wuxi Nanyang Institute of Technology,2008,6(36):36-39.