數字電視是近十幾年發展起來的高新技術,其聲像質量,抗干擾性及傳送節目的數目等方面有模擬電視無法比擬的優點。數字電視的開播,使觀眾可以欣賞更多的優質節目;同時,服務商則希望實現按觀看內容進行收費的良性運營。條件接收系統CAS主要的功能就是確保只有付費用戶才能收看所選節目,徹底解決運營商的收費問題。可以說,CAS是運營商發展新服務的關鍵。但是,我國目前開通的數字電視用的CAS大多是國外的軟硬件方案,隨著數字電視的普及,CAS的國產化就成為非常緊迫的要求。 1 數字電視條件接收系統(CAS)的工作原理 1.1 CAS的加擾和解擾 在采用MPEG-2的數字電視中,加擾過程就是用一個由控制字CW控制的偽隨機序列對PES流或TS流進行擾動,使沒有被授權的用戶不能觀看節目。對于授權用戶,他們的接收機也有一個同樣的偽隨機序列產生器,如果接收到正確的CW,就可以生成解擾序列,解除信號的擾動,恢復出接收機可以播放的信號。 1.2 CAS的加密和解密 用戶解擾的關鍵就是得到正確的CW,而CW是隨著有用信號通過公用的信道傳輸。所以說,CAS的加密實際就是對CW的加密,以防止非授權用戶的侵入。結合圖1介紹CW的加解密機制。 CW一方面控制加擾器對數據流加擾;另一方面通過業務密鑰SK(Server Key)加密形成授權控制信息ECM送到接收端。為了信號的保密性,CW一般幾秒就要改變一次,并且SK也必須進行加密保護。一般來說,對SK加密完全按照各個用戶的特征來進行。由于每臺接收機可以編惟一的接收機號,所以可通過此序號生成個人分配密鑰PDK(Personal DistributionKey)對SK加密,形成授權管理信息EMM。PDK由CA系統設備產生并嚴格控制,在接收端不能被用戶讀出。本文采用的方法是在接收端把PDK裝入FPGA芯片中,增加保密性。為了能提供不同級別、不同類型的服務,一套CA系統往往為每個用戶分配好幾個PDK,來滿足豐富的業務需求。EMM是用戶管理信息和SK等通過PDK加密形成。用戶管理信息由服務商的用戶管理系統形成,包括用戶名稱、地址、智能卡號等。EMM平均每 8~10 s插入傳送流一次,以便新開機用戶解擾。解擾是加擾的逆過程,首先是用戶插入IC卡,輸入用戶密碼,如果密碼正確PDK就會對SK進行解密;然后,由SK 對ECM解密出控制字CW。 2 條件接收系統的FPGA實現 FPGA(Field Programmable Gate Array)有豐富的觸發器和I/O口可以滿足完成CAS功能,開發周期短,可以反復修改,特別適合需不斷完善電路的開發階段。 要實現CAS硬件設計,首先要理解程序特殊信息PSI。PSI能從多節目的TS流中找出所需要的節目碼流和條件接收信息等。PSI必須以一定的頻率不斷發送,至少20次/s,以便新開的接收機能及時解釋傳送流的性質。PSI由4個表組成,包括:程序關聯表(PAT)、程序映射表(PMT)、網絡信息表(NIT)以及條件訪問表(CAT)。其中CAT和PMT與條件接收有關。條件接收信息EMM和ECM的位置是通過CAT和PMT中的條件訪問描述子確定。表1介紹了條件描述子。 EMM信息包的位置是通過CAT表中的描述子確定。ECM信息包的位置確定稍微復雜一些。當在PES流層加擾,出現在PES流中ECM信息被反映到TS 流的PMT中,ECM的條件描述子就出現在PMT中。當在TS層加擾,ECM不出現在PES流中,如果條件信息通過復接加入TS流,ECM的條件描述子就出現在PMT中;如果條件信息沒有通過復接加入TS流,確定ECM的位置可以有2種方法:一種方法是復接時在PMT中預先加入ECM條件描述子,用他確定 TS流中ECM的位置,本文就是采用這種方法;另一種方法是也用CAT中的條件描述子確定ECM信息包的位置,通過CA_system_ID辨別ECM和EMM。 實現CAS時還要注意以下一些限制: (1)僅在PES層或TS層加擾,不要兩層同時加擾。 (2)加擾的PES包頭不允許超過184 B。 (3)攜帶PES包的TS包,除了含有PES包尾的可以有自適應域外,其他的不可以含有自適應域。 (4)PID等于MPEG-2規范的條件描述子CA_PID值的TS包,應僅含有條件系統信息,不能攜帶其他信息。另一方面,條件信息不應該出現在其他地方,例如自適應域等。 (5)在同一個TS中,兩個CA提供商不應該使用相同的CA_PID。 為了避免客戶端解擾設備太復雜,DVB(DigitalVideo Broadcasting)對在PES層加擾做了前3條限制;廣播數據跨越媒體邊界(例如從有線廣播到衛星廣播)時需要新的CA信息替換原有的CA信息,為了靈活高效地進行CA信息替換,DVB做了后2條限制。 解擾只是加擾的逆過程,并且相對簡單,所以下面只對條件接收系統加擾過程的FPGA實現進行討論。 2.1 加擾器的實現 加擾器在條件接收中是一個關鍵部分,他關系到整個系統的保密程度,所以需要一個安全性較高的加擾器。圖2所示加擾器是在FPGA內部實現:他是以可預置線性反饋寄存器(LFSR)為基礎,與數據選擇器共同形成。4個LFSR的階數要求互質,每個LFSR的反饋多項式要求是本原的,這樣產生的偽隨機序列具有最大周期。總線是控制碼發生器(一個偽隨機序列發生器)產生的選擇器控制碼,有8個抽頭并行輸出,每2位對應一個選擇器的選擇端。每個選擇器的輸出是選出的4個LFSR反饋之一,作為與之相連的LFSR時鐘。這是Gollmann級連的改進型,通過數據選擇消除了Gollmann級連易受鎖定攻擊的缺點。4個LSFR輸出的XOR(這是FPGA中的一個器件,當輸入有奇數個1時輸出為1),除去LFSR的線性影響,通過數字選擇器選取這些XOR的輸出之一作為加擾序列的輸出。數字選擇器濾除了加擾器的代數特性避免相關(線性代數)攻擊。 選擇碼生成器可由CW產生器代替,CW一部分作為選擇器的選擇碼,一部分寫入4個可預置的LFSR。這樣,加擾器寄存器不是很多,周期又較長,達到節約硬件且保密程度較高的目的。 2.2 條件接收發送端FPGA實現 用戶管理信息需要PC機處理和保存,既然他是必須的,就可以在PC機中做些其他的事情,以便降低硬件的復雜度,增強信息的保密性。服務密約SK和控制字CW發生器初始值可以在PC機中通過偽隨機序列生成程序生成。在PC機中生成SK和CW初值的優點就是程序容易改動,偽隨機序列周期可以足夠長,保密性高。 在一些文獻中,ECM在PES層已經加入,對于PES層加擾當然很適合;但是對于TS層加擾,完成ECM包中含有的CW和寫入加擾器的CW一致性(實際就是加擾和解擾的同步)比較困難。采用ECM也在TS層加入,實現加解擾同步就容易得多。 TS流是連續不斷的實時信號,條件信號并不可以任意加入其中。不過,TS流中存在大量的空包,可以通過空包替換的方法實現條件包的加入。空包替換器實際就是一個數據選擇器,在需要條件包的地方,讓條件包代替空包。 ECM包PID寄存器存放從PMT中讀取的ECM包的PID,以便形成ECM包時利用。ECM包和EMM包的形成是給EMM和ECM加上包頭、PID和Table_id等。ECM包的Table_id有兩個,0x80和0x81,是為了方便接收端解擾,只有ECM包含新的CW時,他才發生變化。如果Table_id 沒發生變化,接受端就可以不處理這個ECM包,還用以前的CW。EMM只有一個時,可以把他放入CAT包;如果有多個時,可單獨形成EMM包,通過CAT 包中的描述子確定他的PID。其實,為了節約硬件,在加入TS流前條件包并不一定是一個完整的TS包,他包含必要的信息就行了。在代替空包時,有用信息代替空包中的前一部分,和余下的空包中內容共同構成TS包。SK信息變化很慢,EMM包和CAT包只需滿足剛開機用戶能迅速找到SK就行。ECM包替代空包比CAT包或EMM包嚴格的多,因為CW變化快,并且要使ECM包內的CW和寫入加擾器的CW同步,以便保證正確解擾。 CW的加密采用DES(Data Encryption Standard)算法,DES速度快,加密強度較高,硬件容易實現,適合CW變化較快的要求。SK的加密采用RSA算法,RSA 算法速度比DES慢的多,硬件實現只是DES速度的千分之一,但是加密強度大。SK的變化頻率低,使用時間長,安全性要求高,RSA正好滿足這些要求。 TS流的加擾,采用上述的加擾器,通過加擾控制,使之不對條件包、私有數據包、空包、TS包頭、PID等不可加擾的數據進行加擾。 3 結語 本文介紹了條件接收系統的基本原理,并提出一種復接和條件接收相分離的實現方法。這種方法使條件接收系統不受復接的約束,實現起來比較靈活,便于調試。并且這種結構不僅可以對單節目TS流加擾,也可以對多節目TS流進行加擾。采用空包替換,在TS層加入ECM條件包,容易實現加解擾的同步。在實現條件接收的過程中,設計出安全性較高的加擾器成功應用于系統,實現了信息的加、解擾。 |