基于FPGA的數(shù)字電視CAS系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
數(shù)字電視的影音效果、抗干擾性等特點(diǎn)是傳統(tǒng)模擬電視所不能比擬的,是電視事業(yè)將來必然的發(fā)展趨勢(shì)。為了保障并促進(jìn)數(shù)字電視能健康快速的發(fā)展,我們必須保障數(shù)字電視運(yùn)營(yíng)商的利益。數(shù)字電視條件接收系統(tǒng)(簡(jiǎn)稱CAS)就是保障運(yùn)營(yíng)商利益的技術(shù)基石。具體來說CAS是保證只有付費(fèi)的用戶才能正常收看節(jié)目的一系列技術(shù)?,F(xiàn)成的許多CAS都是國(guó)外的方案,隨著我國(guó)數(shù)字電視普及的展開,CAS國(guó)產(chǎn)化的要求就變得更加迫切了。
數(shù)字電視CAS系統(tǒng)的原理
TS流的加擾和解擾
現(xiàn)在數(shù)字電視大多采用了MPEG2傳送流(TS)的方式來進(jìn)行廣播。在廣播之前要先將TS按照一定的方法進(jìn)行加擾,使得沒有授權(quán)的用戶不能收到正確的信號(hào)數(shù)據(jù)。而授權(quán)用戶在接收到加擾的TS碼流之后,他們的接收機(jī)能按照一定的方式進(jìn)行解擾,恢復(fù)出正確的數(shù)據(jù)信號(hào)。具體來說加擾就是用一個(gè)控制字(CW)來產(chǎn)生一系列的偽隨機(jī)序列碼,用它跟TS中的數(shù)據(jù)進(jìn)行異或,打亂原來TS中正確的信號(hào)數(shù)據(jù)。接收機(jī)在解擾時(shí)再根據(jù)相同的CW來產(chǎn)生和加擾時(shí)一樣的隨機(jī)序列,并通過異或的方式將被加擾的數(shù)據(jù)正確地恢復(fù)回來。因此解擾的關(guān)鍵就是要獲得加擾時(shí)用的CW值。
對(duì)CW的加密和解密
如圖1所示,要使得授權(quán)用戶獲得加擾時(shí)的CW,就必須在TS流中加載CW進(jìn)行傳輸。為了不讓未授權(quán)的用戶也獲得正確的CW,因此在廣播CW時(shí)會(huì)用SK(業(yè)務(wù)密鑰)對(duì)其進(jìn)行加密形成ECM(授權(quán)控制信息)。同時(shí)SK本身也會(huì)被PDK(用戶分配密鑰)加密形成EMM(授權(quán)管理信息)之后,再通過TS流進(jìn)行復(fù)用傳輸。由于PDK是授權(quán)用戶機(jī)器本身的一個(gè)編號(hào),它不需要通過TS在公用信道中傳輸。這樣在公用傳輸信道里傳輸?shù)腅CM、EMM都是加密了的。只有授權(quán)用戶才有正確的PDK來解密出SK,也只有正確的SK才能解密出正確的CW。而且為了進(jìn)一步加強(qiáng)信號(hào)的安全性,CW一般來說幾秒鐘就會(huì)變化一次,SK也會(huì)在一個(gè)時(shí)間段后產(chǎn)生變化,來避免破解者對(duì)密鑰進(jìn)行系統(tǒng)性的搜索。
圖1
用FPGA來實(shí)現(xiàn)CAS
在用FPGA設(shè)計(jì)CAS時(shí),必須要理解PSI(程序特殊信息)。PSI包含了要正常收看節(jié)目所需要的絕大部分信息,它由PAT(節(jié)目關(guān)聯(lián)表)、PMT(節(jié)目映射表)、CAT(條件接收表)、NIT(網(wǎng)絡(luò)信息表)4個(gè)表組成。為了新開機(jī)的用戶能及時(shí)收看節(jié)目,PSI必須至少以20次/秒的頻率不斷發(fā)送。和條件接收有關(guān)的就只有CAT和PMT。其中CAT中的CA描述子包含了EMM和ECM的信息。表一介紹了CA描述子的語法結(jié)構(gòu)。
其中CA-sySTem-ID的最低位為零表示pri-vate-data-byte是EMM數(shù)據(jù),否則private-databyte是ECM數(shù)據(jù)。CA-PID是相應(yīng)加擾節(jié)目的PMT的包識(shí)別號(hào)(PID)。本方法通過在CA描述子中加入PMT包的PID的方法,來實(shí)現(xiàn)多個(gè)CA描述子和多個(gè)加擾節(jié)目之間的一一映射關(guān)系。
CAS發(fā)送端FPGA的實(shí)現(xiàn)
CAS發(fā)送端FPGA實(shí)現(xiàn)的框圖見圖2所示。接收機(jī)序號(hào),SK(業(yè)務(wù)密鑰)和CW(控制字)發(fā)生器的初始值由PC機(jī)通過單片機(jī)來對(duì)FPGA芯片進(jìn)行設(shè)定。FPGA芯片先檢測(cè)TS流中PMT包的PID值,將這個(gè)值與EMM、ECM一起形成CAT包,等待前端的復(fù)用器將其插入TS流中。加擾器會(huì)每隔幾秒鐘就對(duì)CW進(jìn)行更新,用新的CW來對(duì)TS加擾,同時(shí)CW發(fā)生器又將產(chǎn)生下一個(gè)CW,經(jīng)過密鑰SK對(duì)CW進(jìn)行DES加密后,形成新的ECM。再打包形成CAT,等待前端插入(復(fù)用)TS流中。EMM信息的形成與此類似。
圖2
CAS接收端FPGA的實(shí)現(xiàn)
CAS接收端FPGA實(shí)現(xiàn)的框圖如圖3所示。PDK信息通過智能卡送給FPGA芯片。FPGA芯片先檢測(cè)解復(fù)用之后的TS流中PMT包的PID值,將其存在寄存器里,然后繼續(xù)尋找CAT表,再找到TS中的CAT時(shí),將其中的CA描述子提取出來,再根據(jù)描述子中CA-system-ID的值來決定是提取ECM信息還是EMM信息,根據(jù)PDK和EMM可以解密出SK,再通過和ECM信息解密出CW。具體是使用當(dāng)前的CW還是使用下一個(gè)CW來解擾,由解擾器根據(jù)TS包頭信息來決定。
圖3
結(jié)束語
本文介紹了數(shù)字電視條件接收的基本原理,并提出了一種只用CAT表來傳送EMM、ECM信息的方法。該方法不但可以對(duì)單節(jié)目流進(jìn)行加擾,還能支持多節(jié)目流加擾后的復(fù)用傳輸。而且相比用CAT、PMT分別傳輸EMM和ECM的方法,該電路更加簡(jiǎn)單,用FPGA也更容易實(shí)現(xiàn)。