|    摘要:詳細(xì)信論述了CA條件接受系統(tǒng)的原理以及關(guān)鍵技術(shù),并針對(duì)實(shí)際情況給出了在數(shù)字電視系統(tǒng)中條件接收的實(shí)現(xiàn)方法。       關(guān)鍵詞:條件接收、 數(shù)字電視、 控制字、 程序映射表(PMT)、條件訪問表(CAT)、 授權(quán)控制信息(ECM)、授權(quán)管理信息(EMM)        隨著數(shù)字視頻廣播(DVB)的發(fā)展,觀眾會(huì)面對(duì)越來越多的數(shù)字電視節(jié)目的選擇。而廣播業(yè)者由于投資成本的增加,則要求對(duì)用戶收取一定的收視費(fèi)用。條件接受系統(tǒng)(Conditional Access System)就是為了滿足對(duì)某些廣播服務(wù)實(shí)施接入控制的系統(tǒng)。它的主要功能就是確保只有支付了或者即將支付費(fèi)用的用戶才能收看所選擇的電視節(jié)目。   1 CA系統(tǒng)的關(guān)鍵技術(shù)      在條件接受系統(tǒng)中,有兩項(xiàng)最為關(guān)鍵的技術(shù):一是傳輸加擾和解擾(Scrambling,Descrambling)的方法。加解擾技術(shù)被用來的發(fā)送端CA系統(tǒng)的控制下改變或控制被傳送的服務(wù)(節(jié)目)的某些特征,使未被授權(quán)的用戶無法獲取該服務(wù)提供的利益;二是控制解擾,在發(fā)送端提供一個(gè)加密信息,使被授權(quán)的用戶端解擾器能以此來對(duì)數(shù)據(jù)解密。該信息受CA系統(tǒng)控制,并以加密形式配置在傳輸流信息中以防止非授權(quán)用戶直接利用該信息進(jìn)行解擾。不同的CA系統(tǒng)管理和傳送該信息的方法有很大不同。     加擾的通常做法是在發(fā)送端使用加擾序列對(duì)視頻、音頻或者數(shù)據(jù)碼流進(jìn)行擾動(dòng),將數(shù)據(jù)打亂。加擾序列由偽隨機(jī)序列發(fā)生器產(chǎn)生,在初始條件已知的情況下,可以推測(cè)出偽隨機(jī)序列發(fā)生器產(chǎn)生的加擾序列。偽隨機(jī)序列發(fā)生器的初始條件受控于控制字(Control Word)。在接收端也有一個(gè)同樣的偽隨機(jī)序列發(fā)生器,如果將控制字CW發(fā)送給這個(gè)偽隨機(jī)序列發(fā)生器,那么就可以獲得解擾序列,然后再用解擾序列恢復(fù)原始信號(hào)。所以說節(jié)目有條件接收的核心是控制字CW的傳輸。為了實(shí)現(xiàn)保密,必須將控制字進(jìn)行加密處理后傳輸。接收端在得到授權(quán)后,才能應(yīng)用解密程序重新生成這個(gè)控制字。   2 控制字CW的加密機(jī)制     因?yàn)镃W是隨加擾信息一起通過公用網(wǎng)傳輸,任何人都可以讀取研究它,一旦CW被讀取破解,那么整個(gè)系統(tǒng)就癱瘓了,所以對(duì)CW本身要用一個(gè)加密密鑰通過加密算法對(duì)它進(jìn)行加密保護(hù)。在具體應(yīng)用中,這個(gè)密鑰可以按照網(wǎng)絡(luò)經(jīng)營(yíng)商要求經(jīng)常加以改變,通常由服務(wù)商提供,用來控制其提供的服務(wù),所以把它稱為業(yè)務(wù)密鑰(Service Key)。SK的使用一般與用戶付費(fèi)條件有關(guān)。     CW雖已由SK加密,但這個(gè)密如果仍可以讓任何人讀取,那就意味著特定服務(wù)的定購(gòu)者和非定購(gòu)者將享有同等權(quán)利,網(wǎng)絡(luò)運(yùn)算商還是難以控制到特定的用戶,安全性仍然存在問題,必須對(duì)SK進(jìn)行再加密保護(hù)。這個(gè)加密過程完全按照各個(gè)用戶特征來進(jìn)行,因?yàn)檫@個(gè)數(shù)列(密鑰)是由個(gè)人特征確定的,常常稱為個(gè)人分配密鑰(PDK)。PDK一般由CA系統(tǒng)設(shè)備自動(dòng)產(chǎn)生并嚴(yán)格控制,在終端設(shè)備處該序列數(shù)一般由網(wǎng)絡(luò)運(yùn)營(yíng)商通過CA系統(tǒng)提供的專用設(shè)備燒入解擾器的PROM中,不能再讀出。為了能提供不同級(jí)別、不同類型的服務(wù),一套CA系統(tǒng)往往為每個(gè)用戶分配好幾個(gè)PDK,來滿足豐富的業(yè)務(wù)需求。     在已實(shí)際運(yùn)營(yíng)的多套CA系統(tǒng)(主要在歐美)中,運(yùn)營(yíng)商對(duì)終端用戶的加密授權(quán)方式有很多種,如人工授權(quán)、磁卡授權(quán)、IC卡授權(quán)、智能卡授權(quán)(用IC構(gòu)成有分析判斷能力的卡)、中心集中尋址授權(quán)(由控制中心直接尋址授權(quán),不用插卡授權(quán))、智能卡和中心授權(quán)共用的授權(quán)方式等。智能卡授權(quán)方式是目前機(jī)頂盒市場(chǎng)的主流,也被我國(guó)廣電總局確定為我國(guó)入網(wǎng)設(shè)備的標(biāo)準(zhǔn)配件。     在所設(shè)計(jì)的CA條件接收系統(tǒng)中,也使用這種智能卡(Smart Card)的授權(quán)方式。(注:智能卡的結(jié)構(gòu)包括協(xié)處理器、ROM和EEPROM。)   3 MPEG-2數(shù)字電視系統(tǒng)中條件接收的實(shí)現(xiàn)     在采用MPEG-2標(biāo)準(zhǔn)的數(shù)字電視系統(tǒng)中,與節(jié)目流有條件接收系統(tǒng)相關(guān)的兩個(gè)數(shù)據(jù)流是:授權(quán)控制信息(Entitle Control Message)和授權(quán)管理信息(Entitle Manage Message)。由SK加密算是后的CW在ECM中傳送,ECM中還包括節(jié)目來源、時(shí)間、內(nèi)容分類和節(jié)目?jī)r(jià)格等信息。對(duì)CW加密的SK在EMM中傳送,SK在傳送前要經(jīng)過用戶個(gè)人分配密鑰(Personal Distribute Key)的加密處理,EMM中還包含地址、用戶授權(quán)信息。     在傳送流(Transport Stream)中,程序特殊信息(PSI)被分為四類:程序關(guān)聯(lián)表(PAT),程序映射表(PMT),網(wǎng)絡(luò)信息表(NIT)以及條件訪問表(CAT)。其中,PMT和CAT與條件接受密切相關(guān)。     為了更加地說明問題,首先介紹一下條件訪問描述子(CA descriptor),如表1所示。如果任一原始流被加密,含有此原始流的程序中必須有CA描述子。如果任何寬系統(tǒng)條件訪問管理信息(如EMM)和原始特殊流信息(如ECM)存在于傳送流中,在相應(yīng)的映射分段中必須有CA描述子。 表1 條件訪問描述子 
                            
                                
                                    | 語  法 | 位  數(shù) | 縮   寫 |  
                                    | CA_descriptor( ) {Descriptor_tag
 Descriptor_length
 CA_system_ID
 Reserved
 CA_PID
 for (i=0;i<N;i++) {
 Private_data_byte
 }
 }
 | 88
 16
 3
 13
 
 8
 | UimsbfUimsbf
 uimsbf
 Bslbf
 Uimsbf
 
 Uimsbf
 |  (注:條件訪問描述子中的Descriprot_tag值為9.通過這個(gè)標(biāo)志位可以將條件訪問描述子與其他的描述子區(qū)別開來,如視頻流描述子、音頻流描述子等。另外,條件描述子中的CA_System_ID用來表示適用于相關(guān)ECM和EMM流的CA系統(tǒng)類型。DVB Project成立了專門的組織負(fù)責(zé)向不同的解碼器生產(chǎn)商分配CA_System_ID值。這樣的話,同時(shí)一套數(shù)字碼流可以將不同CA系統(tǒng)的密鑰傳送給不同的機(jī)頂盒用戶群。) 當(dāng)CA描述子出現(xiàn)在PMT表中時(shí),CA_PID指向含有和ECM信息相關(guān)的程序分組。當(dāng)CA描述子出現(xiàn)在CAT表中時(shí),CA_PID指向含有和EMM信息相關(guān)的程序分組。PMT和CAT表的語法結(jié)構(gòu)如表2、表3所示。 由此可以清楚地知道,解碼器的解密機(jī)制是:當(dāng)智能卡插入機(jī)頂盒(Set-Top Box)時(shí),解碼器將從中讀取CA_System_ID,并找到在CAT表(PID號(hào)為0X01)內(nèi)的CA描述子中,對(duì)應(yīng)該CA_System_ID的CA_PID(即EMM碼流的PID)號(hào)。EMM碼流中包含了經(jīng)過用戶個(gè)人分配密鑰PDK加密處理的用戶密鑰SK。個(gè)人分配密鑰PDK固化的智能卡中,并以加密形式存儲(chǔ),用戶需提供口令方能解密使用。而后,智能卡將解密出業(yè)務(wù)密鑰SK。 完成以上步驟后,解碼器再找到在PMT表中的CA描述子,并找出對(duì)應(yīng)的ECM碼流的PID號(hào)。ECM碼流中包含了由業(yè)務(wù)密鑰SK加密處理后的控制字CW信息。用得到的業(yè)務(wù)密鑰SK對(duì)ECM解密就可以得到控制字CW。將控制字填入解碼芯片的相應(yīng)寄存器中,就可以對(duì)碼流數(shù)據(jù)進(jìn)行解擾,恢復(fù)出原始信號(hào)。 表2 傳送流程序映射表(PMT)分段 
                            
                                
                                    | 語  法 | 位  數(shù) | 縮  寫 |   |  
                                    | TS_program_map_section( ) {table_id
 section_syntax_indicator
 '0'
 Reserved
 section_length
 program_number
 Reserved
 version_number
 current_next_indicator
 section_number
 last_section_number
 Reserved
 PCR_PID
 Reserved
 program_info_length
 for(i=0;i<N;i++) {
 descriptor()
 }
 for(i=0;i<N1;i++) {
 stream_type
 Reserved
 Elementary_PID
 Reserved
 ES_info_length
 for(i=0;i<N2;i++) {
 Descriptor()
 }
 }
 CRC_32
 }
 | 8
 1
 1
 2
 12
 16
 2
 5
 1
 8
 8
 3
 13
 4
 12
 
 
 
 
 8
 3
 13
 4
 12
 
 
 
 
 32
 | UimsbfBslbf
 Bslbf
 Bslbf
 Uimsbf
 Uimsbf
 Bslbf
 Uimsbf
 Bslbf
 Uimsbf
 Uimsbf
 Bslbf
 Uimsbf
 Bslbf
 Uimsbf
 
 
 
 
 Uimsbf
 Bslbf
 Uimsbf
 Bslbf
 Uimsbf
 
 
 
 
 Rpchof
 |  
                                    |   |   |  表3 條件訪問(CAT)分段 
                            
                                
                                    | 語  法 | 位  數(shù) | 縮  寫 |  
                                    | CA_section() {table_id
 section_syntax_indicator
 '0'
 Reserved
 section_length
 
 Reserved
 version_number
 current_next_indicator
 section_number
 last_section_number
 for (i=0;i<N;i++) {
 Descriptor()
 }
 CRC_32
 }
 | 81
 1
 2
 12
 18
 
 5
 1
 8
 8
 
 
 
 32
 | UimsbfBslbf
 Bslbf
 Bslbf
 Uimsbf
 Bslbf
 
 Uimsbf
 Bslbf
 Uimsbf
 Uimsbf
 
 
 
 Rpchof
 |  (注:PMT表的table_id值總為0X02;CAT表中的table_id值總為0X01.另外,在傳送流TS的頭字段中,PMT表的PID號(hào)由PAT表中的相應(yīng)分段給出;而CAT表的PID號(hào)總是為0X01。) 4 ECM以及EMM 為了更詳細(xì)地說明問題,給出ECM以及EMM碼流的語法結(jié)構(gòu),如表4.其中,Table_id的分配情況如表5. 表4 CA信息(ECM,EMM)分段 
                            
                                
                                    | 語  法 | 位  數(shù) | 縮  寫 |  
                                    | CA_message_section() {Table_id
 Section_syntax_indicator
 DVB_reserved
 Reserved
 CA_section_length
 for (i=0;i<N;i++) {
 CA_data_byte
 }
 }
 | 81
 1
 2
 12
 
 8
 | UimsbfBslbf
 Bslbf
 Bslbf
 Uimsbf
 
 Bslbf
 |  (注:Section_syntax_indicator:始終為'0’DVB_reserved:為DVB將來的應(yīng)用保留) 表5 Table_id分配情況 
                            
                                
                                    | Table_id值 | 描  述 |  
                                    | 0x800x81
 0x82~0x8F
 | CA_message_section,ECMCA_message_section,ECM
 CA_message_section,CA System Private
 |  5 加擾 MPEG-2數(shù)據(jù)碼流的加擾可以分為兩層:一是PES層的加擾,一是TS層的加擾。由于設(shè)計(jì)的條件接收系統(tǒng)的前端是在TS節(jié)目流復(fù)用器上實(shí)現(xiàn)的,所以選擇TS層的加擾。TS層的加擾只針對(duì)TS數(shù)據(jù)碼流的有效負(fù)載(payload),而TS碼流中的PSI信息,包括PAT、PMT、NIT、CAT以及私有分段(包括ECM、EMM)都不應(yīng)該被加擾。當(dāng)然,TS流的頭字段(包括調(diào)整字段)也不應(yīng)該被加擾。經(jīng)過加擾后的TS碼流應(yīng)該在頭字段中定義加密控制值。 6 加密算法的選用 (1)控制字的加密:對(duì)于控制字的加密,需要一定強(qiáng)度、處理迅速的加密算法,主要采用秘密密鑰加密體制中的一些加密算法,如:DES算法或者IDEA算法。 (2)業(yè)務(wù)密鑰的加密:業(yè)務(wù)密鑰的改變頻率要遠(yuǎn)小于控制字,因此對(duì)其加密的算法處理速度可以較慢,但由于一個(gè)業(yè)務(wù)密鑰要使用較長(zhǎng)時(shí)間,其安全性要求更高,需選用一些高強(qiáng)度的加密算法。公開密鑰體制的加密算法在此可得到較好的應(yīng)用,因?yàn)楣_密鑰體制加密算法雖然處理速率一般較秘密密鑰體制慢,但大都具有較高的加密強(qiáng)度,可以滿足業(yè)務(wù)密鑰對(duì)安全性的更高要求。另外,采用公開密鑰體制加密,經(jīng)營(yíng)者不必須傳輸用戶的私有密鑰,只需知道用戶的公開密鑰就可對(duì)業(yè)務(wù)密鑰進(jìn)行加密,用戶使用自己的私有密鑰即可解密。這樣可以在用戶端產(chǎn)生一對(duì)密鑰,只要將公鑰傳給發(fā)送端經(jīng)核實(shí)可用后即可,而解密的關(guān)鍵私有密鑰不需進(jìn)行一次傳輸,可以提高系統(tǒng)的安全性。在公鑰體制下還可實(shí)現(xiàn)數(shù)字簽名、數(shù)字證書等功能,對(duì)于系統(tǒng)的業(yè)務(wù)拓寬、業(yè)務(wù)范圍,提供在線支付等功能也非常有利。 目前主要的公鑰加密算法主要有RSA公鑰加密算法,背包公鑰密碼系統(tǒng),勒賓(Rabin)密碼,麥克黎斯(Mceliece)公鑰密碼,橢圓曲線公鑰密碼等,其中RSA公鑰加密算法應(yīng)用較廣。   |