【技術文章】HDCP 2.x Overview

Granite River Labs, GRL
Peter Lee 李清宇

 

          HDCP(High-Bandwidth Digital Content Protection)是由 Intel 制訂的加密技術,可運用在 HDMI 或是 DisplayPort 等數位介面傳輸高解析度影音時,進行數位內容加密以防止影音資訊被盜錄。各家廠商如果要讓多媒體晶片具有上述功能,則需先向 Intel 的子公司 DCP LLC 購賣 HDCP 金鑰授權,之後才能將該技術實作於晶片上。而消費者如果要觀賞具有 HDCP 保護的影音資訊:如藍光光碟、Netflix 影片,播放端(Blu-Ray Player)以及接受端(TV)均須購買有 HDCP 授權的產品,才能觀賞到最高解析度畫質。如果有一方不支援,則會導致影片畫質下降,或甚至無法撥放。

          目前在於 HDMI 介面中,可支援的 HDCP 協定分為 HDCP 1.4 以及最新的 HDCP 2.3(註解一),分別對應於 FHD(1920x1080p), UHD 4K(3840×2160 or 4096×2160)不同解析度的影音保護。以當前消費市場的趨勢,4K 影片以及顯示器逐漸普及,甚至近期各家廠商推出的支援 8K 解析度的 HDMI 2.1 消費性電子產品,可預期將有越來越多的產品將採用 HDCP 2.3 協議,因此本文將著重於 HDCP 2.3 協議的介紹。

 

» HDCP 2.3 介紹

HDCP, HDCP1.4, HDCP2.3, HDMI, DisplayPort, DP, DCP, High-Bandwidth Digital Content Protection, 高清數位內容, Transmitter, Repeater, Receiver, Digital Content Protection, Authentication Protocol, FHD, UHD

圖 1:HDCP 系統樹狀圖(取自 HDCP 2.3 on HDMI Specification)

 

          首先介紹 HDCP 2.3 實體架構,請參考圖一,HDCP Transmitter 可透過輸出口與下游裝置連接:這些下游裝置可為 HDCP Receiver 或 HDCP Repeater,而該連接的 HDCP Repeater 還能透過其下行輸出口再連接其餘裝置,形成裝置連結的樹狀圖。但此樹狀圖並非無限延伸,HDCP 2.3 規範最多只能下接 4 層 HDCP Repeater,且下接裝置數量上限為 32 台。

          接著再看 HDCP 2.3 協議層,其核心理念可分為三個部分。第一為認證(Authentication),傳送裝置會透過認證協議,確認下游是否為 HDCP 合法接受裝置。第二,確認完雙方的合法性後,再透過雙方共享的密鑰對影音進行加密/解密,避免外界被盜錄。第三,由於 HDCP 裝置中的密鑰有可能被破解,因此傳送裝置會更新(Renewability)遭撤銷的 HDCP 裝置名單,確保不會傳送 HDCP 加密資訊給不合法的裝置。

 

» HDCP 2.3 協議介紹

           第二章節提到的認證(Authentication),將細分為幾個步驟進行介紹,包含 Authentication and key exchange (AKE)、Pairing、Locality check、Session key exchange、Authentication with repeater,以下內容僅介紹協議的名詞以及概念,加密演算法並不在本文討論範圍。

 

– Authentication and key exchange (AKE)

此流程(可參考圖 2、圖 3)目的是 Tx 確認 Rx 是否為合格 HDCP 裝置,其中資訊皆使用 HDMI 中的 I2C 介面傳輸,以下為流程介紹:

  1. 當雙方裝置連結後,Tx 會傳送 AKE_Init,內容包含一組 64bit 的偽隨機碼 rtx 以及 TxCaps(Tx HDCP 版本資訊)給 Rx,代表開始進行 HDCP 認證流程。
  2. Tx 在發送完 AKE_Init 後,Rx 需在 100ms 內回傳 AKE_Send_Cert,如果超出時間則認證失敗。
    AKE_Send_Cert 內容由 certrx(包含 Receiver ID, Public Key, DCP LLC Signature)、一組 64bit 的偽隨機碼 rrx 、RxCaps(Rx HDCP 版本資訊、Repeater bit)組成。
  3. Tx 確認 certrx 內的 Receiver ID(相當於 Rx 的身分證)後,會產生兩種分歧流程:如果 Tx 端沒有儲存對應該 Receiver ID 的 Master Key(km),則進行(圖 2)流程-AKE Without stored km,若有則進行(圖 3)流程。
  4. 如果雙方裝置為第一次連結,會進行(圖 2)流程,Tx 除了檢查 Receiver ID 外,還會使用 Tx 的 Public Key 確認 certrx 內 DCP LLC Signature 是否合法,如為非法將導致認證失敗。
  5. Tx 產生一組 128bit 的偽隨機碼作為 Master Key(km),使用 Rx 的 Public Key 對其加密產生 Ekpub(km),並傳送包含 Ekpub(km)的 AKE_No_Stored_km 給 Rx。
  6. Rx 使用自己的 private key (kprivrx)對 Ekpub(km)解碼還原出 km。
  7. Tx 檢查 System Renewability Message (註解二)的合法性,同樣是藉由 Tx 的 Public Key 確認 SRM 內的 Signature 是否合法。
  8. 確認完 SRM 合法性後,再確認下游裝置的 Receiver ID 是否合法。(以上 SRM、Receiver ID 確認只會由最上游 Tx 進行)
  9. Tx 與 Rx 進行 Key derivation,將獲得的 Master Key(km) 運算後得到 kd。
  10. Tx 與 Rx 將雙方交換過的資訊(rtx、RxCaps、TxCaps) 以及 kd 再次運算後分別得到 H 與 H’。
  11. Tx 讀取 Rx 端發送的 AKE_Send_H_Prime,如果 H 與 H’值不相等,或是未在規定時間(1 秒)內收到,將會導致認證失敗。

 

– Pairing

  1. 接續上述步驟,Rx 利用 kprivrx 計算出 128bit kh,再將 km 使用 kh 加密得到 Ekh(km)。
  2. Rx 將包含 Ekh(km) 的 AKE_Send_Paring_Info 傳給 Tx。
  3. Tx 在 200ms 的時間限制內讀取 AKE_Send_Paring_Info,並將對應該次流程的 Receiver ID 的 m, km,Ekh(km)儲存於記憶體內。
  4. 經過 Pairing 的雙方設備再次認證時,因為 Tx 有儲存對應該 Receiver ID 的 Master Key(km),會直接進入(圖 3)流程,相較於(圖 2)流程省略部分步驟(如 Master Key 計算),可減少 HDCP 認證時間。

HDCP, HDCP1.4, HDCP2.3, HDMI, DisplayPort, DP, DCP, High-Bandwidth Digital Content Protection, 高清數位內容, Transmitter, Repeater, Receiver, Digital Content Protection, Authentication Protocol, FHD, UHD

圖 2(取自 HDCP 2.3 on HDMI Specification)

HDCP, HDCP1.4, HDCP2.3, HDMI, DisplayPort, DP, DCP, High-Bandwidth Digital Content Protection, 高清數位內容, Transmitter, Repeater, Receiver, Digital Content Protection, Authentication Protocol, FHD, UHD

圖 3(取自 HDCP 2.3 on HDMI Specification)

 

– Locality check

此步驟是在 HDCP 2.3 引入的新機制,目的為確保雙方裝置距離在合法範圍內,若連結距離太遠,訊息將不會於時限內收到而導致認證失敗,認證流程如下:

  1. Tx 傳送 LC_Init (包含 64bit 偽隨機碼 rn) 給 Rx。
  2. Tx 與 Rx 分別計算 L、L’。
  3. 如果 L 與 L’不相同, 或是 Tx 在 20ms 內未收到 L’,則導致認證失敗。
  4. 認證失敗,協議中規定 Tx 可再產生新的 rn, 並在重新嘗試最多 1023 次。

HDCP, HDCP1.4, HDCP2.3, HDMI, DisplayPort, DP, DCP, High-Bandwidth Digital Content Protection, 高清數位內容, Transmitter, Repeater, Receiver, Digital Content Protection, Authentication Protocol, FHD, UHD

圖 4(取自 HDCP 2.3 on HDMI Specification)

 

– Session key exchange

完成 AKE 以及 Locality check 後,代表傳輸設備雙方均為合法裝置,可以開始進行影像加密傳輸,此步驟目的為雙方加密/解密鑰匙交換,SKE 流程如下:

  1. Tx 產生一個 128bit 的偽隨機碼 Session Key(ks),64bit 偽隨機碼 riv。
  2. Tx 進行 Key derivation 產生 128bit dkey2,並對 ks 加密產生 Edkey(ks)。
  3. Tx 傳送 SKE_Send_Eks(Edkey(ks)、riv)給 Rx。
  4. Rx 進行 Key derivation 產生 128bit dkey2,並將 Edkey(ks) 解譯得到 ks。
  5. 使用 Session Key 以及 Secret global constant(lc128,所有設備均為相同值)開始進行影音加密/解密。

 

– Authentication with repeater

在 AKE 流程中,如果 Rx 回傳的 RxCaps 內的 Repeater bit 為 1 時才會進行此流程。目的有兩個:

  1. Repeater 將下游資訊,如設備數目、階層、版本、Receiver ID 整理回傳給最上游 Tx,如果有資訊不合法,如下接設備數目、階層超過規範(31 台、四階),或是 Receiver ID 在撤銷名單中,會導致認證失敗。
  2. Repeater 將 Tx 要傳送的 HDCP Content type(註解三)資訊傳給下游。

 

註解

  • 註解一:HDCP 2.3 設計架構與 HDCP 1.4 不同,因此並不向下相容,但可透過使用 HDCP 2.3 to HDCP 1.4 轉換器,將播放端的 HDCP 2.3 內容顯示於只支援 HDCP 1.4 的接收端。
  • 註解二:System Renewability Message 由 Tx 端儲存,內容包含已被撤銷的 Receiver ID。因此 Tx 需確認 SRM的合法性後,才能檢查下游裝置的 Receiver ID。
  • 註解三:HDCP 傳輸時可分為 Type0 & Type1 content,Type0 的內容可透過 repeater 傳送給大部分 HDCP 裝置接收,而 Type1 的內容透過 Repeater 後,無法被下游 HDCP 1.x、2.x 設備接收。

 

 

參考文獻

  • HDCP on HDMI Specification Rev2_3

 

文章下載

 

作者
GRL 台灣技術工程師 李清宇 Peter Lee

國立成功大學材料系碩士畢業。兩年 HDMI 測試經驗,熟悉 HDMI2.1 與 HDCP 技術測試。GRL 技術文章作者及演講講師。

 

想瞭解更多相關服務,歡迎聯絡:

11493台北市內湖區內湖路一段516號4樓
電話: +886 (2) 2657-2199 #105
Email: info_taiwan@graniteriverlabs.com
官網: www.graniteriverlabs.com.tw

 

本文件中規格特性及其說明若有修改恕不另行通知。                          發佈日期 2021/05/21 AN-210521-TW