簡述
HDCP主要包含三個基本內容:校驗協定、像素加密疊滲紙希和可更新性。首先,傳送器驗證接收設備是否被授權接收加密數據,是通過校驗協定來檢驗接收器接收數據信息的合法性。傳送器和接收精舉墊設備相互交換一個40位的密鑰選擇矢量(KSV),收發雙方將獲得的KSV和自己的私有密鑰進行各自獨立的運算,運算的結果進行對比,若二值相等則發射端就能確定此接收器為HDCP適合接收者。
若通過前一階段的合法性校驗通過後,傳送器與接收器在校驗協定部分互動共享
密鑰,完成數據加密和解密過程。傳送器的加密是通過對24-bit原始像素數據和由HDCP加密器產生的24-bit加密數據進行“異或”運算得到24bit加密像素數據。接收器端接收到加密像素數據後與接收器HDCP加密器加密後的24-bit加密數據再進行“
異或”運算。由於接收器HDCP加密器的結構和初始值與傳送器HDCP加密器完全相同,所以經過兩次“異或”運算還原加密數據。
當需要取消接收器的合法性時,通過HDCP的可更新性來完成。這一部分HDCP識別和取消未經授權或其KSV已經被放“撤銷列表”的設備。避免了由於合法HDCP接收器的私有設備密鑰和KVS由於某種原因被泄露而造成有版權資訊被非法盜用。
套用背景
高清視頻信號是一種典型的可以從一個系統傳輸到
DVI\
HDMI接口的信號。這些接口能保證傳遞的視頻圖像保持原本的質量,因此可以獲得更多的終端用戶,但對於企業來說,同時會出現更多沒有經過授權和非法複製傳輸的風險。
傳統的知識著作權保護技術僅僅能夠保護已經存儲在某種介質上的數據,但是高清視悼才仔說頻信號仍然能夠通過DVI\HDMI之類的尋她舟數字接口進行傳輸,為了解決這個問題,HDCP就應運而生。HDCP是一個基於數據加密和授權驗證的內容保護系統。
HDCP接收端結構
HDCP接收端有2個通信模組:HDCP傳送端位於HDMI\DVI接收端晶片的外部;而接收端位於HDMI\DVI接收端晶片的內部。
HDCP傳送端通過
IC匯流排傳送授權認證信號給接收端。HDMI接收端接口通過HDCP控制暫存器的更新來發出操作指令,從而控制HDCP接收端的狀態,以及提供必要的信息HDCP接收端知道工作在視頻傳輸的階段,從HDMI接口接收到解密信息並傳送回去。
HDCP接收端由4個模組組成:IC從機接口,
控制暫存器,HDCP控制器以及數據加密機。當打包數據或視頻數據是邏輯高電平時,數據從HDMI輸入到HDCP接收端的解密才有效。數據的輸入與輸出必須在2個時鐘周期內完成。HDMI只有在這個時間內才能夠接收到數據。
1、數據加密機
數據加密是為了將數字內容進行加密,防止不合法的傳輸和複製,它是內容保護的核心邏輯模組。HDCP加密好的數據是由HDCP加密機產生的24位偽隨機數據流與HDCP保護內容的數據按逐位異或的結果。HDCP加密是一種能同時為身份授權認證和高速傳輸非壓縮視頻數據的特殊加密設計。
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、IC從機接口
HDCP裡面定義IC作為控制通道接口。有3種操作模式:讀(read)、寫(write)和短讀(short read)。讀與短讀之間的區別是看讀取數據過程是在Start(S)還是Repeated Start(RS)承少舉條件下初始化的。在短讀模式中,在實際的讀操作前不需要寫入暫存器的偏移地址。
在此HDCP接收端裡面必須有一個能夠支持IPC匯流排的邏輯器件。IPC與第一連線器件的8位的二進制的地址是0111010x;或者是16進制的0×74作為IPC地址,讀寫位置零。與第二連線器件的地址是0x76。IC從機接口邏輯在凝兵決定與控制暫存器的哪部分連線根據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技術。
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、IC從機接口
HDCP裡面定義IC作為控制通道接口。有3種操作模式:讀(read)、寫(write)和短讀(short read)。讀與短讀之間的區別是看讀取數據過程是在Start(S)還是Repeated Start(RS)條件下初始化的。在短讀模式中,在實際的讀操作前不需要寫入暫存器的偏移地址。
在此HDCP接收端裡面必須有一個能夠支持IPC匯流排的邏輯器件。IPC與第一連線器件的8位的二進制的地址是0111010x;或者是16進制的0×74作為IPC地址,讀寫位置零。與第二連線器件的地址是0x76。IC從機接口邏輯在決定與控制暫存器的哪部分連線根據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技術。