色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 消費電子 > 設計應用 > 基于DVD-ROM應用的內容加擾系統(tǒng)的VLSI設計

          基于DVD-ROM應用的內容加擾系統(tǒng)的VLSI設計

          作者: 時間:2008-03-18 來源: 收藏

            摘 要:本文介紹了一種基于DVD-ROM應用的內容干擾系統(tǒng)(CSS)的設計和實現(xiàn)。該系統(tǒng)可有效防止對DVD盤片的非法拷貝。文中通過對其工作原理和實際應用的分析,給出其最終實現(xiàn)方案,并用Verilog HDL完整整個系統(tǒng)的設計。功能仿真和FPGA驗證表明,設計成功。

          本文引用地址:http://cafeforensic.com/article/80243.htm

            關鍵詞:內容加擾系統(tǒng);DVD;Verilog HDL;FPGA驗證

            引 言

            DVD-ROM的視頻和音頻數(shù)據(jù)是經過加密編碼的,加擾的源是標題密鑰(Tittle Key),同時標題密鑰被光盤密鑰(光盤密鑰)加密,主機在播放影碟的時候必須拿到這兩個密鑰才能順利播放。在密鑰從DVD驅動器傳送到主機的過程中,為了保證數(shù)據(jù)傳輸通道的安全性,即保證光盤密鑰和標題密鑰能夠被安全地傳輸,CSS建立了一道認證機制(Authentication Mechanism),通過總線密鑰(BUSKEY)對光盤密鑰和標題密鑰進行加擾。由于能夠有效地防止對DVD光盤的非法拷貝,CSS幾乎被所有的商業(yè)DVD設備所使用。

            當DVD播放機讀取數(shù)據(jù)時,伺服控制芯片中的CSS將進行復雜的密碼校驗。如果密碼校驗成功,數(shù)據(jù)才可以還原成MPEG-2格式和轉換為視頻信號和音頻信號。本文介紹了一種完成認證過程、光盤密鑰和標題密鑰的加擾和傳輸?shù)腃SS的設計,它用于DVD伺服控制芯片中。

            CSS 的原理及系統(tǒng)分析

            根據(jù)DVD標準以及CSS的相關的規(guī)范,CSS主要包含兩部分:

            (1)DVD驅動器和主機之間的授權認證。

            其認證流程為:主機發(fā)送一個隨機碼流到驅動器,驅動器對其加密后返回主機,主機解密后確認是否和原碼流相同,如果相同則驅動器被授權。主機的授權過程與驅動器的授權過程相同。交互授權的結果是產生總線密鑰用于對在主機和驅動器之間傳輸?shù)臄?shù)據(jù)進行加密。只有主機和驅動器可以產生用于解密的密鑰。

            (2)光盤密鑰和標題密鑰的加擾。加擾過程為:

           ?、衮寗悠饔每偩€密鑰對光盤密鑰和標題密鑰加擾。CSS對密鑰的加擾開始于伺服控制芯片從DVD 光盤讀取包含光盤密鑰和標題密鑰的扇區(qū)數(shù)據(jù)。數(shù)據(jù)先讀入UPI(微處理器接口)寄存器然后傳送到存儲區(qū)管理模塊(BM-Buffer Manager)并生成CSS內存指針以用于CSS讀取數(shù)據(jù)。CSS 從BM 中一次讀取一個字節(jié)的密鑰,加擾后儲存到BM 中由微處理器內存指針所指向的區(qū)域。密鑰加擾完成后,CSS發(fā)出CSS DONE中斷。

           ?、谕ㄟ^微處理器內存指針,UPI寄存器讀取加擾后的密鑰并傳送至主機。

           ?、壑鳈C接收到加擾后的光盤密鑰和標題密鑰用其進行解擾。采用正確的光盤密鑰和標題密鑰主機可對光盤上的音頻、視頻數(shù)據(jù)解擾。

            

           

            圖1  CSS結構圖

            CSS的系統(tǒng)結構及主要模塊硬件實現(xiàn)

            圖1表示CSS系統(tǒng)結構圖,它由四個模塊組成:

           ?、?CSS_PROC:處理CSS數(shù)據(jù)輸入輸出,它是CSS與DVD伺服控制芯片中BM和UPI的接口;

           ?、?CSS_RAND_GEN :產生80-bit偽隨機數(shù)用于DVD驅動器對主機的認證,偽隨機數(shù)的產生用到了42位線性反饋移位寄存器(LFSR-LinearFeedback Shift Register);

           ?、?CSS_AUTH:CSS中最為關鍵的認證運算模塊;

           ?、蹸SS_SM:控制CSS_AUTH模塊的認證過程,并且在CSS_PROC中開啟密鑰傳輸。

            由以上這些模塊構成的CSS系統(tǒng)實現(xiàn)DVD驅動器和主機之間的交互授權認證以及光盤密鑰和標題密鑰的加擾兩大功能,系統(tǒng)時鐘為100MHZ 。

            數(shù)據(jù)通路設計

            CSS最關鍵的地方在于主機和DVD驅動器之間的認證,因而認證運算模塊CSS_AUTH成為設計重點。根據(jù)圖1的認證過程,它由5個子模塊來完成,如圖2所示:

            

           

            圖2  CSS_AUTH結構圖

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

            在這些模塊中,被復用的模塊AUTH_COMMON 包含著最復雜的數(shù)據(jù)路徑,設計時劃分為四個子模塊,如圖3所示:

            

           

            圖3 AUTH_COMMON結構圖

            在圖3中,KEY模塊中存放通過L ICENSE 得到的AK,通過XOR 模塊與PCD[79:40] (對于DRV_AUTH)來說PCD為從主機發(fā)送過來的80bit 隨機碼流;對于DEC_AUTH 來說PCD為驅動器自身產生的用以對主機進行認證的80_bit 隨機數(shù);而對于KEY_SHARE PCD來說則為DEC_AUTH模塊的運算結果,即驅動器對主機認證過程產生的中間連接數(shù))進行異或,然后經過SCHEDULER模塊(由兩個LFSR、一個一位全加器和一些XOR門及寄存器組成)得到IAK,最后送到SUBSTITU TOR模塊得到AUTH三個子模塊各自的運算結果。

            設計中最困難的部分在于SUBSTITUTOR的設計,其硬件結構如圖4所示,由30個SBOX、10個TBOX 和一系列XOR門組成。它是基于CSS加擾算法的,采用5X6運算陣列實現(xiàn)。整個運算按列進行,即先在第0列從第0行開始一直算到第4行,再在第1列從第0行開始一直算到第4行,這樣一直運算到第5列。運算時SBOX的行列地址由專門的控制電路來選擇。

            

           

            圖4  SUBSTITUTOR硬件結構圖

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

            

           

            圖5 SBOX硬件結構圖

            其中,PRE_TABLE 和POST_TABLE 均為查找表,用8X8ROM 實現(xiàn),這樣完成整個認證過程需要32 個這樣的ROM。從圖中可以看到,ROM地址由輸入數(shù)據(jù)決定,按址查找后即得到輸出結果。查找表和AK一樣需向DVD協(xié)會申請許可證才能得到具體數(shù)據(jù)。

            狀態(tài)機設計

            根據(jù)系統(tǒng)分析,CSS有6種工作模式,分別為:

           ?、儆嬎鉊VD驅動器的響應值DRV_RES ;

           ?、诋a生對主機認證的呼叫DEC_CHAL 用于對主機的認證;

           ?、郛a生主機的參考值DEC_REF,并與主機的響應值DEC_RES作比較,若相同則主機通過DVD驅動器認證并產生連接數(shù);

           ?、墚a生總線密鑰:

           ?、萦每偩€密鑰對光盤密鑰進行加擾;

            ⑥用總線密鑰對標題密鑰進行加擾。

            

           

            圖6  狀態(tài)轉換圖

            CSS中采用MOORE類型的狀態(tài)機,圍繞這些工作模式進行狀態(tài)轉換。其狀態(tài)轉換圖如圖6所示。

            功能仿真和FPGA 驗證

            按照上述設計思想,用Verilog HDL對CSS進行RTL描述。使用Synopsys VCS對其6種模式進行仿真,通過Debussy的PLI接口生成波形文件(.fsdb),在Debussy中對波形進行分析。光盤密鑰共有2048 個字節(jié),DVD 扇區(qū)中包含光盤密鑰的數(shù)據(jù)區(qū)在第13個到2060個字節(jié)。在測試腳本里預先設定總線密鑰的值并導入2352個字節(jié)的DVD扇區(qū)數(shù)據(jù)到BM以便對CSS進行功能測試。在這里只針對光盤密鑰加擾模式的仿真波形進行說明。

            其中,CSS_BM_RD_REQ_CNT為CSS向BM發(fā)出的讀請求信號,DISC_KEY_XFER_EN為光盤密鑰傳輸使能信號,均為高電平有效。BM_CSS_DATA[7:0]為光盤密鑰數(shù)據(jù),存儲于BM的FIFO中。當上述兩個使能信號都為“1”時,光盤密鑰就從BM傳輸至CSS中,每個時鐘周期傳送一個字節(jié)。TOTAL_OFFSET_CNT是從BM傳輸來的數(shù)據(jù)的總的字節(jié)偏移量,當TOTAL_OFFSET_CNT=11時DISC_KEY_STARTLOC置位,標志著開始加擾光盤密鑰。每傳送一個字節(jié)數(shù)據(jù)的光盤密鑰,就用總線密鑰對其進行異或運算,并在下一個時鐘周期將加擾的結果送出并產生數(shù)據(jù)有效標志。分析CSS_BM_DATA_OUT[7:0]可知,總線密鑰對光盤密鑰進行了正確的加擾及傳輸。

            為了保證CSS系統(tǒng)設計的正確性,我們選用Xilinx Spartan2的XC2S50器件做FPGA驗證。我們在Synplify中生成網(wǎng)表文件(.edf),然后通過XilinxISE生成單元網(wǎng)表文件(.v)和線延時文件(.sdf)以用于VCS 進行后仿真,最后生成FPGA下載文件(bit)。XC2S50硬件占用情況如表1所示:

            

           

            表1  FPGA資源分配表

            結束語

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



          關鍵詞: FPGA DVD CSS VLSI

          評論


          相關推薦

          技術專區(qū)

          關閉