close

HDCP是什麼?

HDCP_1.jpg

HDCP logo

HDCPHigh-Bandwidth Digital Content Protection,高頻寬數位內容保護),是由英特爾(Intel)公司所發展,用以確保數位化的影像與聲音資料在通過DVIHDMI介面(之後的Display port也有支援)傳送時不至於遭到非法拷貝(有人已經號稱可以破解HDCP)

HDCP 1.0 → DVI

HDCP 1.1之後 → DVIHDMI (本篇以HDCP 1.1版做說明)

HDCP的授權管理由英特爾的子公司「數位內容保護公司」(Digital Content Protection, LLC)負責,HDCP的規格受到多項專利權保護,任何人欲實作HDCP必須申請授權。

每個裝置都需要一組HDCP key廠商除了每年要向Digital HDCP委員會支付15000美元的年費,還要向HDCP委員會購買keykey的費用依據每單購買的數量不同,而不同(買的越多越便宜):

一次性購買1萬個key,收費1000美元。

一次性購買10萬個key,收費2500美元。

一次性購買100萬個key,收費5000美元。

基本來說,欲播放有HDCP保護的影音內容如HD DVDBlu-ray DiscPlayStation 3遊戲(透過HDMI輸出時)、PlayStation 4遊戲,訊號來源(播放機顯示卡)和顯示器雙方都必須內建HDCP金鑰功能才能正常播放。若系統任何一者不配備此密匙,影像畫素有可能降低,甚至不能播放影像。現時許多顯示卡已內建HDCP功能。

目前,HDCP 的規格,已經由HDCP1.x,演進到更嚴謹的HDCP 2.2。

 

HDCP對畫面顯示的影響

HDCP_2.jpg

HDCP認證失敗 - 雪花畫面

HDCP_3.jpg

HDCP認證失敗 - 警告訊息

除了上述的雪花畫面和警告訊息,如果HDCP解密失敗,也可能造成畫面解析度降低或不播放畫面,不同的播放裝置會有不同的處理方式。

 

HDCP系統及名詞介紹

HDCP_11.jpg


HDCP基本流程示意圖

 

HDCP_4.jpg

HDCP系統

 

名稱

意義

位元數

Device A

Transmitter (Tx, 發送端)

 

Device B

Receiver (Rx, 接收端)

 

KSV

Key Selection Vector(密鑰選擇向量)

40-bit

(0120-bit)

Aksv

Device AKSV

 

Bksv

Device BKSV

 

An

Device A產生的隨機值

64-bit

REPEATER

用來描述Device B是否為Repeater

1-bit

Km

利用Bksv中為1bit當作索引,從40key set中找出20key, 再將這20key加總,其加總值為Km

 

Ks

HDCP內容編碼用

56-bit

M0

HDCP認證的第二部分使用

64-bit

R0

Device B回傳的R0’比對,R0 = R0’HDCP認證才會過

16-bit

Km’, Ks’, M0’, R0’

Device B計算產生的值,其意義與上述內容相同

 

 

HDCP的認證流程

HDCP的認證流程是透過I2C完成的(DP是利用AUX通道溝通),HDCP的認證流程分為三個部分:

第一部分:認證機制的初始化

HDCP_5.JPG

 1. Device A發起,可以在任何時候開始進行HDCP認證。

2. Device A送出An, Aksv

3. Device B回傳Bksv, REPEATER bit

4. Device A檢查Bksv

 

5. Device ADevice B分別利用得到的ksv計算Km, Ks, M0, R0 (Km’, Ks’, M0’, R0’)

 

第二部分:Device BRepeater的情況

HDCP_7.png

 

 

1. Device A設置5秒的Watchdog Timer,等待Repeater蒐集所有連接的RepeaterReceiverKSV,若超過5秒還沒收到Repeater回傳的資料,則HDCP認證失敗。

2. Device B將蒐集到的KSV傳給Device A

3. Device A檢查收到的資料是否正確,若V = V’則認證通過,否則認證失敗。

4. Repeater認證失敗的原因有以下幾點:

  • V != V’
  • Transmitter收到的KSV list超過其容量
  • Device數量超過127個,Device深度超過7 level
  • KSV list中有KSV在黑名單(Revocation list)

 

第三部分:內容傳輸進行時的情況(畫面播放時)

HDCP_6.JPG

 

1. V blanking區運作。

2. TransmitterReceiver各自算出Ki, Mi, Ri (Ki’, Mi’, Ri’)

3. i代表frame numer,若i=1,則代表第一張frame

4. 128frame更新一次Ri

5. Transmitter至少2秒檢查一次Ri是否等於Ri’

6. Transmitter讀取Ri的動作必須在1ms完成。

7. Enhance Link Verification

  • Bcaps bit 1.1_FEATURE被立起來的時候執行
  • 16frame比對PjPj’,連續三次比對錯誤才會判為認證失敗。

 

 

Transmitter與Receiver的HDCP連結流程

HDCP_8.JPG

State H0 : Reset, 沒有偵測到Receiver

State H0 → H1 : 當有偵測到Receiver(偵測到HPD變化)

State H1 : 讀取ReceiverEDID

State H1 → H2/H3 : Transmitter送出未加密的Video訊號,通知Receiver

State H2/H3 → A0 : Transmitter想進行HDCP認證,則進入A0 state

HDCP_9.JPG

State A0:

  • Transmitter應傳送一video信號 (如藍畫面或信息提示畫面),以避免HDCP還沒認證完成,使用者就因沒看到畫面而切換到其他video source
  • Transmitter2polling一次Receiver,讀取Bksv,直到Receiver回覆Bksv為止。

State A0 → A1: Transmitter收到有效的Bksv後,開始進行HDCP認證流程。

State A1: 交換KSV

  • Transmitter產生An並將An寫入Receiver
  • Transmitter讀取Bcaps暫存器值,決定採用DVIHDMI
  • 若要使用Advance Cipher option則設定Ainfo
  • Transmitter讀取BksvREPEATER bit

State A1 → A0 : 讀取到無效的Bksv

State A1 → A2 : Bksv為有效值

State A2 : 計算Km, Ks, M0, R0

State A2 → A3 : 計算完成後進入 state A3

State A3 :

  • R0 = R0’則開始HDCP認證流程
  • 要保留至少100ms的時間給Receiver計算R0’
  • Bksv在黑名單中則認證失敗

State A3 → A0 : 認證失敗

State A4 : 認證成功

State A5 : Link Integrity Check, 128frame檢查Ri是否等於Ri’

State A5 → A0 : Ri != Ri’R0’沒有在1ms內回覆

State A6 → A4 : REPEATER bit = 0

State A6 → A8 : REPEATER bit = 1

State A8 : 5sWD timer,等RepeaterREADY bit設定。

State A8 → A0 : 若超過5秒沒收到READY bit則認證失敗

State A8 → A9 : READY bit被設定完成

State A9 :

  • 清除5sWD timer
  • 讀取V’,檢查V是否等於V’
  • 檢查KSV list,若在黑名單則認證失敗

State A9 → A0 : Repeater認證失敗

  • V != V’
  • KSV在黑名單中
  • MAX_CASCADE_EXCEEDED, MAX_DEVS_EXCEEDED狀態被設立
  • KSV list超出Transmitter容量限制

State A9 → A4 : Repeater認證成功

HDCP_10.JPG

State B0 : Reset,等待Transmitter送出AnAksv

State B0 → B1 : 收到Aksv最後一個byte,讓Ainfo設定發生作用,並將其清為0

State B1 : 計算Km’, Ks’, M0’, R0’

State B1 → B1 : 若在state B1接收到Aksv,則重新做計算

State B1 → B2 : 計算完成,R0’Transmitter讀取

State B2 : 認證完成,準備產生第一張framekey (R1’)

State B2→ B1 : 一旦收到Aksv,則回去state B1重新計算

State B2 → B3 : blanking區產生Ri’

State B3 : 128frame更新一次Ri’

State B3 → B2 : Ri’更新後回到state B2

 

Cipher模組

HDCP_11.png

HDCP_12.png

HDCP的密碼模組(HDCP Cipher)根據在認證過程中產生的key,通過特定演算法算出一個24bit偽隨機加密資料,該資料與TMDS通道傳輸的24bit內容資料進行XOR(異或)邏輯運算,結果再送往TMDS編碼器生成TMDS信號,然後傳送出去。而在接Receiver端,由相同的機構和共享密值產生相應的24bit偽隨機解密資料,來還原內容資料。

 

小結

若發現接digital port(DVIHDMIDP等數位訊號線)會有畫面雪花或解析度下降等異常現象,可以有以下處理方式:

  • 換成VGA訊號線,因為類比訊號沒有HDCP的機制。
  • 重新拔插訊號線或重開機,讓HDCP重新交握。

 

資料來源

 

 

 

arrow
arrow
    文章標籤
    HDCP Monitor DP HDMI
    全站熱搜
    創作者介紹
    創作者 雷克斯 的頭像
    雷克斯

    雷克斯の生活日誌

    雷克斯 發表在 痞客邦 留言(0) 人氣()