複製鏈接
請複製以下鏈接發送給好友

HDCP

鎖定
高帶寬數字內容保護技術(High -bandwidth Digital Content Protection,HDCP)技術是由好萊塢與半導體界巨人Intel合作開發,用以確保數字化的影像與聲音數據在通過傳輸接口傳送時不會遭到非法拷貝 [5]  ,適用於高速的數字視頻接口Displayport、HDMl、DVI),內容加擾實現保護。HDCP設計為內容消費鏈中的最後一個環節,從內容源設備到顯示設備,HDCP不允許完全內容拷貝行為,即拷貝控制信息CCl只有禁止拷貝狀態。在系統更新方面,HDCP採用吊銷列表來屏蔽已經被竊取的設備私鑰 [1] 
中文名
高帶寬數字內容保護技術
外文名
High -bandwidth Digital Content Protection
簡    稱
HDCP
作    用
保護未經壓縮的數字音視頻內容
技術內容
校驗協議、像素加密和可更新性
所屬領域
電子信息技術

HDCP簡述

HDCP主要包含三個基本內容:校驗協議、像素加密和可更新性。首先,發送器驗證接收設備是否被授權接收加密數據,是通過校驗協議來檢驗接收器接收數據信息的合法性。發送器和接收設備相互交換一個40位的密鑰選擇矢量(KSV),收發雙方將獲得的KSV和自己的私有密鑰進行各自獨立的運算,運算的結果進行對比,若二值相等則發射端就能確定此接收器為HDCP適合接收者。
若通過前一階段的合法性校驗通過後,發送器與接收器在校驗協議部分交互共享密鑰,完成數據加密和解密過程。發送器的加密是通過對24-bit原始像素數據和由HDCP加密器產生的24-bit加密數據進行“異或”運算得到24bit加密像素數據。接收器端接收到加密像素數據後與接收器HDCP加密器加密後的24-bit加密數據再進行“異或”運算。由於接收器HDCP加密器的結構和初始值與發送器HDCP加密器完全相同,所以經過兩次“異或”運算還原加密數據。
當需要取消接收器的合法性時,通過HDCP的可更新性來完成。這一部分HDCP識別和取消未經授權或其KSV已經被放“撤銷列表”的設備。避免了由於合法HDCP接收器的私有設備密鑰和KVS由於某種原因被泄露而造成有版權信息被非法盜用。 [2] 

HDCP應用背景

高清視頻信號是一種典型的可以從一個系統傳輸到DVI\HDMI接口的信號。這些接口能保證傳遞的視頻圖像保持原本的質量,因此可以獲得更多的終端用户,但對於企業來説,同時會出現更多沒有經過授權和非法複製傳輸的風險。
傳統的知識版權保護技術僅僅能夠保護已經存儲在某種介質上的數據,但是高清視頻信號仍然能夠通過DVI\HDMI之類的數字接口進行傳輸,為了解決這個問題,HDCP就應運而生。HDCP是一個基於數據加密和授權驗證的內容保護系統 [3] 

HDCPHDCP接收端結構

HDCP接收端有2個通信模塊:HDCP發送端位於HDMI\DVI接收端芯片的外部;而接收端位於HDMI\DVI接收端芯片的內部。
HDCP發送端通過I2C總線發送授權認證信號給接收端。HDMI接收端接口通過HDCP控制寄存器的更新來發出操作指令,從而控制HDCP接收端的狀態,以及提供必要的信息HDCP接收端知道工作在視頻傳輸的階段,從HDMI接口接收到解密信息併發送回去。
HDCP接收端由4個模塊組成:I2C從機接口,控制寄存器,HDCP控制器以及數據加密機。當打包數據或視頻數據是邏輯高電平時,數據從HDMI輸入到HDCP接收端的解密才有效。數據的輸入與輸出必須在2個時鐘週期內完成。HDMI只有在這個時間內才能夠接收到數據。子模塊設計包括: [3] 
1、數據加密模塊
數據加密是為了將數字內容進行加密,防止不合法的傳輸和複製,它是內容保護的核心邏輯模塊。HDCP加密好的數據是由HDCP加密機產生的24位偽隨機數據流與HDCP保護內容的數據按逐位異或的結果。HDCP加密是一種能同時為身份授權認證和高速傳輸非壓縮視頻數據的特殊加密設計。
數據加密模塊採用流加密方法實現,流加密的結構如圖4所示,主要南3部分組成:
(1)線性反饋移位寄存器(Linear Feedback Shift RegiSTer,LFSR)模塊。包括4個不同長度的線性反饋移位寄存器和一個混疊網絡。
(2)分組模塊。由2個結構非常類似的輪函數B和輪函數K模塊組成。
(3)輸出功能模塊。由基於異或的組合電路組成,在每個時鐘脈衝裏產生一個24位的偽隨機數據。
2、HDCP接收端控制器
HDCP控制模塊控制HDCP接收端的所有操作,它通過個狀態機來實現以下功能:
(1)HDCP接收端的狀態的控制。
(2)計算Km值,HDCP接收端把Key存儲到控制器中。
(3)接收端授權認證狀態的轉換。
(4)HDCP加密狀態的轉換:OESS,EESS,兩種加密方式。
3、控制器寄存器
當HDCP接收端是第一連接器件時,控制寄存器根據HDCP協議中定義的,除了0x20~0x30,0x43地址位,這些是HDCP中繼器的控制寄存器;當HDCP接收端是第二連接器件時,僅僅是控制寄存器的子集才允許進入的。IPC接口子模塊會發出一個從HDMI接收端接口連接到第一還是第二的指示信號。
4、I2C從機接口
HDCP裏面定義I2C作為控制通道接口。有3種操作模式:讀(read)、寫(write)和短讀(short read)。讀與短讀之間的區別是看讀取數據過程是在Start(S)還是Repeated Start(RS)條件下初始化的。在短讀模式中,在實際的讀操作前不需要寫入寄存器的偏移地址
在此HDCP接收端裏面必須有一個能夠支持IPC總線的邏輯器件。IPC與第一連接器件的8位的二進制的地址是0111010x;或者是16進制的0×74作為IPC地址,讀寫位置零。與第二連接器件的地址是0x76。I2C從機接口邏輯在決定與控制寄存器的哪部分連接根據HDCP發送端指示的從機地址來確定。
這個子模塊需注意以下幾點:
(1)僅有4個寄存器支持該寫操作即Aksv、Ainfo、An、dbg.
(2)必須有一個寫操作先於Aksv到來。
(3)第一連接器件、第二連接器件與HDCP連接的端口不一樣。
(4)地址自動增加必須由I2C接口實現。
(5)ksv FIFO讀操作行為地址的增加不同於其他地址增加方法。
(6)授權觸發條件:寄存器更新Aksv、Ainfo、An值,最後寫入到寄存器中的0x14地址中用以觸發HDCP接收端的授權認證序列。

HDCP實現機制

每個支持HDCP的設備都必須擁有一個獨一無二的HDCP密鑰(Secret Device Keys),密鑰由40組56bit的數組密碼組成。HDCP密鑰可以放在單獨的存儲芯片中,也可以放在其他芯片的內部,例如,ATl和Nvdia(世界兩大著名顯卡主芯片供應商)完全可以將它們放入顯示芯片中。每一個有HDCP芯片的設備會擁有一組私鑰(Device Private Key),一組私鑰將會組成KSV(Key Selection Vector)。KSV相當於這台擁有HDCP芯片設備的ID號。HDCP傳輸器在發送信號前,將會檢查傳輸和接受數據的雙方是否是HDCP設備,它利用HDCP密鑰,讓傳輸器與接收端交換,這時雙方將會獲得一組KSV並且開始進行運算,其運算的結果會讓兩方進行對照,若運算出來的數值相符,該傳輸器就可以確認該接收端為合法的一方。傳輸器確定了接收端符合要求,傳輸器便會開始進行傳輸訊號,不過這時傳輸器會在信號上加入了一組密碼,接收端必須實時進行解密才能夠正確的顯示影像。換句話説,HDCP並不是確認雙方合法後就不管了,HDCP還在傳輸中加入了密碼,以防止在傳輸過程中偷換設備。具體的實現方法是,HDCP系統會每2秒進行確認,同時每128幀畫面進行一次發送端和接受端計算一次RI值,比較兩個RI值來確認連接是否同步。
密碼和算法泄密是廠家最頭疼的事,為了應對這個問題,HDCP特別建立了“撤銷密鑰”機制。每個設備的密鑰集KSV值都是唯一的,HDCP系統會在收到KSV值後在撤銷列表中進行比較和查找,出現在列表中的KSV將被認作非法,導致認證過程的失敗。這裏的撤銷密鑰列表將包含在HDCP對應的多媒體數據中並將自動更新。簡單的説,KSV是針對每一個設備制定了唯一的序號,比較自然的可用號碼是每個設備的SN號。這樣一來,即便是某個設備被破解了,也不會影響到整體的加密效果。總的來説,HDCP的規範相當嚴謹,除了內容本身加密外,傳輸過程也考慮的相當精細,雙方設備都要內置HDCP才能實現播放。但是,最後需要指出的是,HDCP和HDMI或者DVI接口之間並沒有必然的聯繫,只是HDMI標準在制定之初就已經詳細的考慮到了對HDCP的支持,並且在主控芯片中內置了HDCP編碼引擎,因此,在版權保護方面,要大大領先於DVI技術。 [4] 
參考資料