於 輝,敖發(fā)良,石 濤
(桂林電子科技大學 信息與通信學院,廣西 桂林 541004)
數(shù)據(jù)統(tǒng)計顯示,截至2009年底中國有線數(shù)字電視用戶已超過6 500萬戶。隨著人們生活水平的提高,家庭中有2臺及以上電視的現(xiàn)象極為普遍,然而當今推廣的機頂盒產(chǎn)品只能支持1臺電視信號的接收,并已成為當前阻礙數(shù)字電視推廣的重大因素之一。人們要求新一代數(shù)字機頂盒具有類似“路由”的功能,可以同時支持家庭中多臺電視接收不同節(jié)目的信號。因此,對于雙解碼甚至多解碼機頂盒的研發(fā)勢在必行。文獻[1]提出了一種多顯示數(shù)字電視機頂盒的設(shè)計方案,已獲國家知識產(chǎn)權(quán)局的專利授權(quán)。
在過去的近20年里,DSP處理器的性能得到很大改善,軟件和開發(fā)工具也得到相應(yīng)發(fā)展,價格大幅下降,應(yīng)用也越來越廣泛。本設(shè)計的重點就是要把2路數(shù)字電視信號的解擾算法應(yīng)用于以TMS320VC5410DSP芯片為內(nèi)核的單板硬件環(huán)境。在增加一定硬件開銷的前提下,快速提高解擾算法。DSP芯片同時為2塊解碼模塊實現(xiàn)解擾運算,滿足系統(tǒng)要求,實現(xiàn)了雙解碼機頂盒。
國內(nèi)有線數(shù)字電視采用DVB-C作為行業(yè)標準,以MPEG-2作為音視頻編碼方式。為保證收費電視可被合法用戶正常收看,數(shù)字電視傳輸時通常采用對傳輸流(TS)進行加擾的條件接收系統(tǒng)。因此解擾模塊的實現(xiàn)是機頂盒中的一項關(guān)鍵技術(shù)。數(shù)字電視條件接收系統(tǒng)包括3層結(jié)構(gòu)[2]:1)利用控制字(CW)對原始電視信號(圖像、聲音和數(shù)據(jù))進行加擾,得到加擾后的電視信號。CW通常為64 bit,它在 5~20 s內(nèi)變化可調(diào)[3]。2)利用業(yè)務(wù)密鑰(SK)對CW加密成為授權(quán)控制信號(ECM),其中還包括節(jié)目來源、時間、內(nèi)容分類和節(jié)目價格等節(jié)目信息。CW由于數(shù)據(jù)量大,變化比較快,通常使用對稱密鑰算法加解密,如DES算法。3)利用分配密鑰(PDK)對SK進行加密,形成授權(quán)管理信息(EMM)數(shù)據(jù)包,包括地址、用戶授權(quán)信息、用戶付費情況等。由于SK變化周期比較長,通常為1個月,一般采用RSA算法加密。
ECM,EMM和加擾的音視頻信號復用在一起傳送到接收端。接收端根據(jù)智能卡提供的信息在TS流中過濾出屬于自己的EMM和對應(yīng)節(jié)目的ECM數(shù)據(jù)包后,利用固化在智能卡中的PDK依次解密出SK和CW,最后通過解擾器還原出標準的MPEG-2音視頻信號供解碼電路進行解碼后輸出聲音和圖像信號。
本設(shè)計方案中采用兩塊ST公司的單片信源解碼器芯片STi5518[4]實現(xiàn)標清數(shù)字電視解碼。該芯片主要由高頻調(diào)諧器、QAM解調(diào)器、硬件TS流解復用器、MPGE-2音視頻解碼器、條件接收模塊、存儲器模塊、紅外遙控接收模塊和各種接口電路組成。
STi5518有線數(shù)字電視雙解碼機頂盒的硬件平臺如圖1所示。工作過程如下:2路高頻調(diào)諧器接收來自有線電視網(wǎng)絡(luò)的射頻信號,2路信號分別經(jīng)過QAM解調(diào)完成信道解碼,從載波中解調(diào)出含有音視頻和其他數(shù)據(jù)的MPEG-2格式的傳輸流,2片STi5518芯片內(nèi)部的解復用器根據(jù)所選擇的頻道在傳輸流中提取相應(yīng)的音視頻數(shù)據(jù)流(ES包)和一些控制數(shù)據(jù)包。ES包即可以被送往各自內(nèi)部對應(yīng)的音視頻解碼器解碼,經(jīng)軟硬件解碼后輸出至電視顯示終端。從圖1中可以看出,雙解碼機頂盒中最關(guān)鍵的技術(shù)是2路數(shù)字電視信號條件接收系統(tǒng)的實現(xiàn),即通過DSP芯片與智能卡片的接口電路實現(xiàn)對用戶密鑰(PDK)的讀取,同時計算出2路電視信號的解擾密鑰CW1和CW2,并實時傳送至2塊STi5518解碼芯片中。
圖1 基于STi5518雙解碼機頂盒硬件平臺
基于TMS320VC5410的雙解擾系統(tǒng)的硬件設(shè)計結(jié)構(gòu)如圖2所示。除了采用TMS320VC5410作為主控芯片外,還有專用的電源芯片、Flash芯片及智能卡接口芯片。系統(tǒng)啟動后,DSP通過與智能卡的接口電路讀取固化在卡片中的PDK,同時實時接收來自2片STi5518解碼芯片的ECM信息和EMM信息,利用內(nèi)存中讀取到的PDK運行解密算法后得到CW1與CW2,并反饋到各自的STi5518芯片中供解擾電路使用。TMS320VC5410提供了3個多通道緩沖串口 McBSP0,McBSP1和 McBSP2。McBSP與外設(shè)的數(shù)據(jù)交換,通過DX引腳發(fā)送,RX引腳接收。通信的時鐘與幀信號由CLKX,CLKR,F(xiàn)SX及FSR引腳來控制[5]。DSP通過BDX0,BDX1,BDX2向外圍接口發(fā)送數(shù)據(jù);通過BDR0,BDR1,BDR2接收外圍芯片發(fā)送來的數(shù)據(jù)。
圖2 基于TMS320VC5410條件接收系統(tǒng)硬件設(shè)計
硬件系統(tǒng)主要包括以下4個模塊:
1)電源管理模塊。TMS320VC5410DSP芯片的電源分為CPU 內(nèi)核電源(CVDD,2.5 V)和 I/O 電源(DVDD,3.3 V),而實際常用的電源都是5 V,所以必須采用合適的電源轉(zhuǎn)換芯片,本系統(tǒng)選用TI公司的TPS73SD325電壓調(diào)節(jié)器為電源適配。
2)外部存儲器模塊。采用了可工作在3.3 V的Flash芯片SST39VF400A作為外部程序存儲器來實現(xiàn)DSP的并行自舉加載,其存儲容量為256×103×16 bit。它有A0~A17共18個地址引腳和DQ0~DQ15共16條數(shù)據(jù)引腳,連接時只需將這些地址與數(shù)據(jù)引腳連至TMS320VC5410對應(yīng)的地址和數(shù)據(jù)引腳即可。將TMS320VC5410的讀寫狀態(tài)信號引腳R/W直接接到SST39VF400A的寫使能引腳WE,并在反相后接到讀使能引腳OE,即可實現(xiàn)TMS320VC5410對Flash的讀寫控制。同時將TMS320VC5410的外部存儲器選通信號MSTRB引腳接到SST39VF400A的片選信號CE。這樣當需要外部存儲器進行操作時MSTRB信號有效就可選中Flash。
3)智能卡接口模塊。IC卡接口需要外接一個IC卡接口芯片才能與DSP芯片進行通信。本設(shè)計采用了Philips公司的TDA8004芯片。TDA8004是一種IC卡接口芯片,該芯片可以提供一個低成本的異步智能卡模擬接口。TDA8004的OFF引腳與DSP芯片的外部中斷信號引腳相連,用于在智能卡插入時向DSP發(fā)出中斷;由DSP芯片的通用輸出引腳XF控制TDA8004的供電使能引腳;通過I/OUC引腳將數(shù)據(jù)送入DSP的BDR0引腳,實現(xiàn)了智能卡中數(shù)據(jù)的讀取。
4)STi5518連接模塊。TMS320VC5410與STi5518芯片主要進行解密數(shù)據(jù)的交換,DSP通過BDR1和BDR2這2個引腳接收來自STi5518送來的待解密數(shù)據(jù)包EMM和 ECM。DSP內(nèi)部完成解密后,將CW通過BDX1和BDX2反饋給STi5518。
系統(tǒng)的主要功能是快速解密EMM和ECM這2個數(shù)據(jù)段,得到CW。前端信源系統(tǒng)在形成EMM時一般采用的是RSA加密算法,在形成ECM時則是采用DES加密算法。因此,軟件設(shè)計主要包括以下兩方面:
1)RSA解密算法的實現(xiàn)
RSA加解密算法是一種公鑰(非對稱)密碼體制。通常是首先生成一對RSA密鑰,其中之一是保密密鑰,由用戶保存;另一個為公開密鑰,可對外公開,人們用公鑰加密文件發(fā)送給個人,個人就可以用私鑰解密接收,為提高保密強度,RSA密鑰長度至少為512 bit[6]。RSA加密過程如圖3所示。
圖3 RSA加解密流程圖
首先選擇2個大素數(shù)p和q,計算N=p×q。然后隨機選擇加密密鑰 e,要求 e 和(p-1)×(q-1)互質(zhì),最后利用Euclid算法計算解密密鑰d,滿足
式中: N和d也要互質(zhì),e和N是公開密鑰,d是私密密鑰,2個素數(shù)p和q不再需要,可以丟棄,因此加密算法為
而解密算法則為
在數(shù)字電視傳播系統(tǒng)中,前端信源通過事先確定的密鑰對SK進行RSA加密運算后形成EMM包。同時解密密鑰PDK已經(jīng)固化在智能卡中并發(fā)放給用戶。DSP接收到來自STi5518的EMM包后,即可讀取智能卡中的PDK,通過解密運算得到SK,并進行下一階段解密。為加快運算速度,在進行算法程序編寫時采用了冪模算法的二進制移位運算實現(xiàn),大大節(jié)省了運算處理的時間。
2)DES解密算法的實現(xiàn)
DES加解密算法是一種私鑰(對稱)密碼體制。DES使用長度為56 bit的密鑰加密64 bit的明文,獲得長度為64 bit的密文[7]。加密時給定一個明文x,通過一個固定的初始置換IP來置換x而獲得x0,可以將其記為x0=IP(x)=L0R0(L0代表左邊 32 bit,R0代表右邊 32 bit)。 然后進行16輪完全相同的運算。根據(jù)下列規(guī)則計算LiRi(1≤i≤16)
式中:f是函數(shù),ki是密鑰k的函數(shù),長度為48 bit。DES加密移位過程如圖4所示。
圖4 DES加密移位圖
對比特串R16L16應(yīng)用初始置換IP的逆轉(zhuǎn)換IP-1作用之后獲得密文y,即y=IP-1(R16L16)。以上算法可同時用于DES加密和解密。電視前端信源以SK對CW采用DES加密后形成ECM包。DSP芯片接收到ECM包后利用已經(jīng)解密出的SK對ECM包進行解密后即可得到CW。
本設(shè)計系統(tǒng)的工作流程描述如下:
(1)當IC卡插入接口電路后,通過TMS320VC5410DSP芯片對其進行上電復位,置TDA8004芯片的使能信號有效,并約定傳輸協(xié)議(采用T=0,傳輸速率為9 600 bit/s)。IC卡完成初始化后,DSP讀取IC卡的各種信息,并傳輸至2片STi5518芯片中。
(2)STi5518根據(jù)IC卡的CA_system_ID在TS流中過濾出PID為0x0001的條件接收表 (CAT),然后根據(jù)CAT找到該CA系統(tǒng)中EMM對應(yīng)的PID,獲取EMM碼流后送至DSP芯片,并觸發(fā)DSP的外部中斷;DSP用讀取到的IC卡中固化的PDK運行RSA算法解密出SK,由于2個解碼芯片共用1個SK,且SK變化周期長(一般為1個月),因此將SK暫存在DSP的RAM中。
(3)STi5518解碼器根據(jù)節(jié)目信息表(PMT),得到節(jié)目ECM碼流的PID,過濾出ECM包并傳給DSP,觸發(fā)DSP外部中斷。DSP利用得到的用戶密鑰SK對ECM進行DES解密即可得到CW,并傳送給STi5518解擾電路保存并且使用。通常CW在5~20 s變化1次。若在解密過程中第2塊解碼器芯片觸發(fā)DSP外部中斷,則進入中斷等待狀態(tài)。
(4)DSP解密出1路電視信號的CW后,緊接著響應(yīng)第2片STi5518芯片的中斷請求。按照先來先處理的中斷響應(yīng)原則進行2路信號控制字的解密,從而完成多路數(shù)字電視解擾系統(tǒng)的關(guān)鍵部分。
隨著數(shù)字電視技術(shù)在我國各地的推廣與普及,機頂盒產(chǎn)業(yè)存在廣闊的市場,各大公司相繼投入大量資源開發(fā)新一代產(chǎn)品,希望可以在競爭中占據(jù)有利地位。本設(shè)計中的產(chǎn)品成本低,可以同時為家庭中2臺電視機提供不同的信號接收,滿足人們的需求,加之廣電部門出臺相應(yīng)管理措施,必然有著非常巨大的市場價值。
[1]敖發(fā)良.多顯示數(shù)字電視機頂盒:中國,200810073780[P].2009-01-28.
[2]JIANG Tianpu,HOU Yongmin,ZHENG Shibao.Secure communication between set-top box and smart card in DTV broadcasting[J].IEEE Trans.Communications,2004,50(3):882-886.
[3]鄭雯,翟希山,王志廣,等.數(shù)字電視原理、傳輸與接收[M].北京:人民郵電出版社,2006.
[4]陳穎琪,陳軍華,王旭,等.單片式DVB-C/S機頂盒的設(shè)計與實現(xiàn)[J].電視技術(shù),2003(6):54-56.
[5]彭啟琮,李玉柏,管慶.DSP技術(shù)的發(fā)展與應(yīng)用[M].北京:高等教育出版社,2007.
[6]楊曉云.現(xiàn)代密碼學[M].西安:西安電子科技大學出版社,2009.
[7]張萍.機頂盒中智能卡通信的實現(xiàn)[J].電子應(yīng)用技術(shù),2005(10):54-55.