基于DVD-ROM應用的內容加擾系統的VLSI設計
摘 要:本文介紹了一種基于DVD-ROM應用的內容干擾系統(CSS)的設計和實(shí)現。該系統可有效防止對DVD盤(pán)片的非法拷貝。文中通過(guò)對其工作原理和實(shí)際應用的分析,給出其最終實(shí)現方案,并用Verilog HDL完整整個(gè)系統的設計。功能仿真和FPGA驗證表明,設計成功。
本文引用地址:http://dyxdggzs.com/article/80243.htm關(guān)鍵詞:內容加擾系統;DVD;Verilog HDL;FPGA驗證
引 言
DVD-ROM的視頻和音頻數據是經(jīng)過(guò)加密編碼的,加擾的源是標題密鑰(Tittle Key),同時(shí)標題密鑰被光盤(pán)密鑰(光盤(pán)密鑰)加密,主機在播放影碟的時(shí)候必須拿到這兩個(gè)密鑰才能順利播放。在密鑰從DVD驅動(dòng)器傳送到主機的過(guò)程中,為了保證數據傳輸通道的安全性,即保證光盤(pán)密鑰和標題密鑰能夠被安全地傳輸,CSS建立了一道認證機制(Authentication Mechanism),通過(guò)總線(xiàn)密鑰(BUSKEY)對光盤(pán)密鑰和標題密鑰進(jìn)行加擾。由于能夠有效地防止對DVD光盤(pán)的非法拷貝,CSS幾乎被所有的商業(yè)DVD設備所使用。
當DVD播放機讀取數據時(shí),伺服控制芯片中的CSS將進(jìn)行復雜的密碼校驗。如果密碼校驗成功,數據才可以還原成MPEG-2格式和轉換為視頻信號和音頻信號。本文介紹了一種完成認證過(guò)程、光盤(pán)密鑰和標題密鑰的加擾和傳輸的CSS的設計,它用于DVD伺服控制芯片中。
CSS 的原理及系統分析
根據DVD標準以及CSS的相關(guān)的規范,CSS主要包含兩部分:
(1)DVD驅動(dòng)器和主機之間的授權認證。
其認證流程為:主機發(fā)送一個(gè)隨機碼流到驅動(dòng)器,驅動(dòng)器對其加密后返回主機,主機解密后確認是否和原碼流相同,如果相同則驅動(dòng)器被授權。主機的授權過(guò)程與驅動(dòng)器的授權過(guò)程相同。交互授權的結果是產(chǎn)生總線(xiàn)密鑰用于對在主機和驅動(dòng)器之間傳輸的數據進(jìn)行加密。只有主機和驅動(dòng)器可以產(chǎn)生用于解密的密鑰。
(2)光盤(pán)密鑰和標題密鑰的加擾。加擾過(guò)程為:
?、衮寗?dòng)器用總線(xiàn)密鑰對光盤(pán)密鑰和標題密鑰加擾。CSS對密鑰的加擾開(kāi)始于伺服控制芯片從DVD 光盤(pán)讀取包含光盤(pán)密鑰和標題密鑰的扇區數據。數據先讀入UPI(微處理器接口)寄存器然后傳送到存儲區管理模塊(BM-Buffer Manager)并生成CSS內存指針以用于CSS讀取數據。CSS 從BM 中一次讀取一個(gè)字節的密鑰,加擾后儲存到BM 中由微處理器內存指針所指向的區域。密鑰加擾完成后,CSS發(fā)出CSS DONE中斷。
?、谕ㄟ^(guò)微處理器內存指針,UPI寄存器讀取加擾后的密鑰并傳送至主機。
?、壑鳈C接收到加擾后的光盤(pán)密鑰和標題密鑰用其進(jìn)行解擾。采用正確的光盤(pán)密鑰和標題密鑰主機可對光盤(pán)上的音頻、視頻數據解擾。

圖1 CSS結構圖
CSS的系統結構及主要模塊硬件實(shí)現
圖1表示CSS系統結構圖,它由四個(gè)模塊組成:
?、?CSS_PROC:處理CSS數據輸入輸出,它是CSS與DVD伺服控制芯片中BM和UPI的接口;
?、?CSS_RAND_GEN :產(chǎn)生80-bit偽隨機數用于DVD驅動(dòng)器對主機的認證,偽隨機數的產(chǎn)生用到了42位線(xiàn)性反饋移位寄存器(LFSR-LinearFeedback Shift Register);
?、?CSS_AUTH:CSS中最為關(guān)鍵的認證運算模塊;
?、蹸SS_SM:控制CSS_AUTH模塊的認證過(guò)程,并且在CSS_PROC中開(kāi)啟密鑰傳輸。
由以上這些模塊構成的CSS系統實(shí)現DVD驅動(dòng)器和主機之間的交互授權認證以及光盤(pán)密鑰和標題密鑰的加擾兩大功能,系統時(shí)鐘為100MHZ 。
數據通路設計
CSS最關(guān)鍵的地方在于主機和DVD驅動(dòng)器之間的認證,因而認證運算模塊CSS_AUTH成為設計重點(diǎn)。根據圖1的認證過(guò)程,它由5個(gè)子模塊來(lái)完成,如圖2所示:

圖2 CSS_AUTH結構圖
在圖2中,DRV_AUTH得到驅動(dòng)器對主機的響應值DRV_RES,返回到主機以完成主機對驅動(dòng)器的認證并產(chǎn)生總線(xiàn)密鑰,而DEC_AUTH則和KEY_SHARE 共同完成驅動(dòng)器對主機的認證;DEC_AUTH 取回主機對驅動(dòng)器的響應值以后,通過(guò)和主機相反的過(guò)程得到一個(gè)參考值,將它和DEC_RES比較后驗證主機,驗證成功產(chǎn)生連接數,送給KEY_SHARE 最終產(chǎn)生用以加密的總線(xiàn)密鑰。為了使CSS_AUTH的面積最優(yōu),如圖2所示,將CSS_DRV_AUTH、CSS_DEC_AUTH和CSS_KEY_SHARE 三個(gè)模塊中共同包含的邏輯部分抽出形成一個(gè)單獨的模塊CSS_AUTH_COMMON ,同時(shí)設計一個(gè)多路選擇模塊AUTH_MUX_COMMON 來(lái)選擇到AUTH_COMMON的數據源。這種模塊多路復用結構很好的節省了電路面積,提高了運算速度。
在這些模塊中,被復用的模塊AUTH_COMMON 包含著(zhù)最復雜的數據路徑,設計時(shí)劃分為四個(gè)子模塊,如圖3所示:

圖3 AUTH_COMMON結構圖
在圖3中,KEY模塊中存放通過(guò)L ICENSE 得到的AK,通過(guò)XOR 模塊與PCD[79:40] (對于DRV_AUTH)來(lái)說(shuō)PCD為從主機發(fā)送過(guò)來(lái)的80bit 隨機碼流;對于DEC_AUTH 來(lái)說(shuō)PCD為驅動(dòng)器自身產(chǎn)生的用以對主機進(jìn)行認證的80_bit 隨機數;而對于KEY_SHARE PCD來(lái)說(shuō)則為DEC_AUTH模塊的運算結果,即驅動(dòng)器對主機認證過(guò)程產(chǎn)生的中間連接數)進(jìn)行異或,然后經(jīng)過(guò)SCHEDULER模塊(由兩個(gè)LFSR、一個(gè)一位全加器和一些XOR門(mén)及寄存器組成)得到IAK,最后送到SUBSTITU TOR模塊得到AUTH三個(gè)子模塊各自的運算結果。
設計中最困難的部分在于SUBSTITUTOR的設計,其硬件結構如圖4所示,由30個(gè)SBOX、10個(gè)TBOX 和一系列XOR門(mén)組成。它是基于CSS加擾算法的,采用5X6運算陣列實(shí)現。整個(gè)運算按列進(jìn)行,即先在第0列從第0行開(kāi)始一直算到第4行,再在第1列從第0行開(kāi)始一直算到第4行,這樣一直運算到第5列。運算時(shí)SBOX的行列地址由專(zhuān)門(mén)的控制電路來(lái)選擇。

圖4 SUBSTITUTOR硬件結構圖
其中,T代表T_BOX ,只在5X6結構的第三四列出現,主要對輸入數據進(jìn)行XOR 運算及相應的置位;SBOX硬件結構如圖5所示:

圖5 SBOX硬件結構圖
其中,PRE_TABLE 和POST_TABLE 均為查找表,用8X8ROM 實(shí)現,這樣完成整個(gè)認證過(guò)程需要32 個(gè)這樣的ROM。從圖中可以看到,ROM地址由輸入數據決定,按址查找后即得到輸出結果。查找表和AK一樣需向DVD協(xié)會(huì )申請許可證才能得到具體數據。
狀態(tài)機設計
根據系統分析,CSS有6種工作模式,分別為:
?、儆嬎鉊VD驅動(dòng)器的響應值DRV_RES ;
?、诋a(chǎn)生對主機認證的呼叫DEC_CHAL 用于對主機的認證;
?、郛a(chǎn)生主機的參考值DEC_REF,并與主機的響應值DEC_RES作比較,若相同則主機通過(guò)DVD驅動(dòng)器認證并產(chǎn)生連接數;
?、墚a(chǎn)生總線(xiàn)密鑰:
?、萦每偩€(xiàn)密鑰對光盤(pán)密鑰進(jìn)行加擾;
?、抻每偩€(xiàn)密鑰對標題密鑰進(jìn)行加擾。

圖6 狀態(tài)轉換圖
CSS中采用MOORE類(lèi)型的狀態(tài)機,圍繞這些工作模式進(jìn)行狀態(tài)轉換。其狀態(tài)轉換圖如圖6所示。
功能仿真和FPGA 驗證
按照上述設計思想,用Verilog HDL對CSS進(jìn)行RTL描述。使用Synopsys VCS對其6種模式進(jìn)行仿真,通過(guò)Debussy的PLI接口生成波形文件(.fsdb),在Debussy中對波形進(jìn)行分析。光盤(pán)密鑰共有2048 個(gè)字節,DVD 扇區中包含光盤(pán)密鑰的數據區在第13個(gè)到2060個(gè)字節。在測試腳本里預先設定總線(xiàn)密鑰的值并導入2352個(gè)字節的DVD扇區數據到BM以便對CSS進(jìn)行功能測試。在這里只針對光盤(pán)密鑰加擾模式的仿真波形進(jìn)行說(shuō)明。
其中,CSS_BM_RD_REQ_CNT為CSS向BM發(fā)出的讀請求信號,DISC_KEY_XFER_EN為光盤(pán)密鑰傳輸使能信號,均為高電平有效。BM_CSS_DATA[7:0]為光盤(pán)密鑰數據,存儲于BM的FIFO中。當上述兩個(gè)使能信號都為“1”時(shí),光盤(pán)密鑰就從BM傳輸至CSS中,每個(gè)時(shí)鐘周期傳送一個(gè)字節。TOTAL_OFFSET_CNT是從BM傳輸來(lái)的數據的總的字節偏移量,當TOTAL_OFFSET_CNT=11時(shí)DISC_KEY_STARTLOC置位,標志著(zhù)開(kāi)始加擾光盤(pán)密鑰。每傳送一個(gè)字節數據的光盤(pán)密鑰,就用總線(xiàn)密鑰對其進(jìn)行異或運算,并在下一個(gè)時(shí)鐘周期將加擾的結果送出并產(chǎn)生數據有效標志。分析CSS_BM_DATA_OUT[7:0]可知,總線(xiàn)密鑰對光盤(pán)密鑰進(jìn)行了正確的加擾及傳輸。
為了保證CSS系統設計的正確性,我們選用Xilinx Spartan2的XC2S50器件做FPGA驗證。我們在Synplify中生成網(wǎng)表文件(.edf),然后通過(guò)XilinxISE生成單元網(wǎng)表文件(.v)和線(xiàn)延時(shí)文件(.sdf)以用于VCS 進(jìn)行后仿真,最后生成FPGA下載文件(bit)。XC2S50硬件占用情況如表1所示:

表1 FPGA資源分配表
結束語(yǔ)
本文介紹了一種內容干擾系統(CSS)的設計和實(shí)現。在分析了其工作原理和系統結構后我們給出了數據通路和狀態(tài)機的設計方法,重點(diǎn)說(shuō)明了SUBSTITU TOR的設計,這是整個(gè)系統設計中的難點(diǎn)。該系統在DVD伺服控制電路中的應用表明,它確保了DVD驅動(dòng)器到主機的光盤(pán)數據傳輸通道的安全性,可以有效防止對DVD盤(pán)片的非法拷貝,達到了設計要求。
評論