本發(fā)明涉及用于HDMI上的HDCP的內(nèi)容加密引擎的同步領域。
背景技術:
用于高清晰度多媒體接口(HDMI)上的高帶寬數(shù)字內(nèi)容保護(HDCP)的規(guī)范的修訂版2.2在2013年2月發(fā)布。當建立HDCP HDMI傳輸時,執(zhí)行會話密鑰交換(SKE)。
HDCP系統(tǒng)由源設備、一個或多個接收設備(sink device)和/或一個或多個中繼器設備組成。源設備是根據(jù)HDCP HDMI修訂版2.2規(guī)范對視頻/音頻內(nèi)容進行加密的HDCP發(fā)送器。接收設備是根據(jù)該規(guī)范對視頻/音頻內(nèi)容進行解密的HDCP接收器。中繼器設備是可以根據(jù)該規(guī)范對視頻/音頻內(nèi)容進行解密并重新加密的HDCP中繼器。在本文中,我們將只考慮HDCP發(fā)送器和HDCP接收器,但相同的基本原理可以應用于HDCP中繼器。
在預授權(quán)階段結(jié)束時,HDCP發(fā)送器將生成會話信息并將其傳遞至HDCP接收器。在發(fā)送和接收內(nèi)容數(shù)據(jù)之前,該信息連同HDCP HDMI修訂版2.2規(guī)范中所概述的初始值被編程到內(nèi)容加密引擎中。這使HDCP系統(tǒng)移到授權(quán)后階段,授權(quán)后階段必須保持密碼同步以避免鏈路完整性問題。當這兩個設備保持同樣的幀計數(shù)器值時實現(xiàn)密碼同步。計數(shù)器值從0開始,并對每個加密的(受保護的)幀遞增。該值用于計數(shù)器模式下的AES。HDCP接收器通過對每個加密的幀計數(shù)來保持該計數(shù)。
HDCP HDMI修訂版2.2規(guī)范規(guī)定在發(fā)送加密的內(nèi)容之前,HDCP發(fā)送器必須在會話密鑰交換(session key exchange,SKE)之后等待200ms。這使與HDCP接收器上的密碼同步相關的問題最小化。在某些情況下,HDCP發(fā)送器可能不符合HDCP HDMI修訂版2.2規(guī)范并且緊接在SKE之后開始發(fā)送受保護的內(nèi)容和/或小于所規(guī)定的200ms發(fā)送受保護的內(nèi)容。這可能導致HDCP接收器不能與HDCP發(fā)送器正確地同步,從而引起鏈路完整性問題。
參照圖1,發(fā)送器(Tx)發(fā)送3個沒有加密的三個幀101a-101c(ENC_DIS)。一旦接收器(Rx)100編程加密密鑰并達到AUTH(授權(quán))模式103,接收器100就開始監(jiān)控用于ENC_EN控制信號102c-102e的幀內(nèi)容。當在接收器100轉(zhuǎn)換到AUTH模式之后接收控制信號時,接收器100開始執(zhí)行幀計數(shù)104。保持正確的幀計數(shù)對于確保正確的密碼同步是必要的。
如果發(fā)送器在發(fā)送加密的會話密鑰之后不等待200ms而是緊接在SKE(會話密鑰交換)之前、在SKE期間或緊接在SKE之后開始發(fā)送加密的內(nèi)容,則接收器100可能沒有準備或預備好監(jiān)聽ENC_EN=1控制信號,并且接收器100可能不使密碼同步并從而不能解密內(nèi)容數(shù)據(jù)。圖1示出了該場景,發(fā)送器(Tx)開始發(fā)送從幀#3 102a開始的加密的內(nèi)容時,沒有發(fā)生切換到授權(quán)模式103,直到幀#4之后才發(fā)生切換到授權(quán)模式。因此,接收器(Rx)100直到在接收到幀#5之后才初始化幀計數(shù)器。
需要即使發(fā)送器在HDCP HDMI 2.2規(guī)范所必需的200ms延遲之前就發(fā)送加密的內(nèi)容,也能確保正確的密碼同步。
技術實現(xiàn)要素:
根據(jù)本公開的一個方面,一種方法包括:在接收器裝置處從發(fā)送器裝置接收幀;以及響應于接收包括加密的內(nèi)容的幀,所述接收器裝置在所述接收器裝置處于預授權(quán)模式時或在完成所述接收器裝置與所述發(fā)送器裝置之間的會話密鑰交換之前更新所述接收器裝置的內(nèi)部狀態(tài)。在所述預授權(quán)模式中,所述接收器裝置等待授權(quán)以對任何所接收到的包括加密的內(nèi)容的幀進行解密。
所述內(nèi)部狀態(tài)可以為幀計數(shù)器,一旦在所接收到的幀中的一個幀中檢測到加密使能控制信號,所述幀計數(shù)器就開始對由所述接收器裝置所接收到的幀的數(shù)目進行計數(shù)。所述方法還可以包括通過所述接收器裝置的內(nèi)容加密引擎(CEE)來使所述幀計數(shù)器增值。在與所述會話密鑰交換相關聯(lián)的加密密鑰由所述接收器裝置完全編程時,所述CEE可以輸出臨時圖像。在所述預授權(quán)模式之后的授權(quán)后模式的開始時,所述幀計數(shù)器可以具有非零值。
所述內(nèi)部狀態(tài)可以為以計數(shù)器模式運行的高級加密標準引擎,所述接收器裝置每次接收包括加密的內(nèi)容的幀時,所述高級加密標準引擎就使其計數(shù)器值增值。所述接收器裝置可以根據(jù)高清晰度多媒體接口(HDMI)上的高帶寬數(shù)字內(nèi)容保護(HDCP)2.2規(guī)范從所述發(fā)送器裝置接收所述幀。
所述接收器裝置可被配置成不更新任何內(nèi)部狀態(tài),直到由所述接收器裝置接收到包括加密的內(nèi)容的幀。不管所述發(fā)送器裝置何時開始發(fā)送包括加密的內(nèi)容的幀,都可以確保正確的密碼同步。
根據(jù)本公開的另一個方面,公開了一種從發(fā)送器裝置接收幀的接收器裝置。所述接收器裝置包括幀計數(shù)器,在所述接收器裝置處于預授權(quán)模式中時以及在所述接收器裝置正在等待從所述預授權(quán)模式轉(zhuǎn)換到授權(quán)后模式時,針對從所述發(fā)送器裝置接收到的、包括加密的內(nèi)容的每一個幀更新所述幀計數(shù)器,使得在所述授權(quán)后模式中,如果包括加密的內(nèi)容的幀由所述接收器裝置在所述預授權(quán)模式期間接收到,則所述幀計數(shù)器具有非零值,其中所述接收器裝置在所述預授權(quán)模式中不對任何接收到的包括加密的內(nèi)容的幀進行解密,并且所述接收器裝置在所述授權(quán)后模式中能夠開始對任何接收到的包括加密的內(nèi)容的幀進行解密。
附圖說明
現(xiàn)在將結(jié)合下面的附圖描述本發(fā)明的示例性實施方式,其中:
圖1示出在認證完成之后且在發(fā)送器已經(jīng)開始發(fā)送加密的內(nèi)容之后更新加密的幀計數(shù)的接收器;
圖2示出不依賴于認證過程而在檢測到加密的幀之后更新幀計數(shù)的接收器;
圖3示出AKE和CEE的示例性功能。
具體實施方式
參照圖2,在一個實施方式中,為了確保正確的密碼同步,一檢測到ENC-EN控制信號102a,接收器200就在建立SKE之前(或者在預授權(quán)或PRE-AUTH狀態(tài)中)開始幀計數(shù)201。當發(fā)送器(Tx)將加密的會話密鑰發(fā)送到接收器(Rx)時,SKE交換發(fā)生。會話密鑰的示例為在會話密鑰交換(SKE)期間HDCP發(fā)送器(Tx)與HDCP接收器(Rx)200之間協(xié)商并在HDCP內(nèi)容加密或解密期間使用的隨機的、機密的密鑰。HDCP內(nèi)容包括視聽內(nèi)容(包括以加密的形式),該視聽內(nèi)容由HDCP系統(tǒng)保護并通過HDCP保護的接口(諸如HDMI)從HDCP發(fā)送器傳輸?shù)较掠蔚慕邮赵O備(sink device)(例如HDCP接收器200)。HDCP系統(tǒng)的場景包括在圖2中示出的HDCP發(fā)送器(Tx)和HDCP接收器(Rx)200。HDCP接收器(Rx)200為可通過一個或多個HDCP保護的接口端口(諸如HDMI端口)接收加密的內(nèi)容并對其進行解密的設備。HDCP發(fā)送器(Tx)為可通過其一個或多個HDCP保護的接口端口(諸如HDMI端口)加密并發(fā)送HDCP內(nèi)容的設備。
ENC-EN或ENC-ENC控制信號被稱為加密使能控制信號,并且指示幀內(nèi)存在加密的內(nèi)容。在圖2中,ENC-ENC是指啟用ENC控制信號并且?guī)写嬖诩用艿膬?nèi)容(術語ENC-EN和ENC-ENC是相同的并且在本文中可互換使用)。ENC-DIS控制信號被稱為加密禁用控制信號,并且指示幀內(nèi)不存在加密的內(nèi)容。預授權(quán)或PRE-AUTH模式是指在建立SKE之前接收器200的狀態(tài)。一旦SKE已經(jīng)建立,接收器200就轉(zhuǎn)換到授權(quán)或AUTH模式,指示接收器200可以接收加密的HDCP內(nèi)容。例如,在PRE-AUTH模式期間,發(fā)生認證和密鑰交換(Authentication and Key Exchange,AKE)和位置檢查,如在HDCP HDMI 2.2規(guī)范中定義的。在AKE交換期間,HDCP發(fā)送器驗證HDCP接收器的公鑰證書,并且在HDCP發(fā)送器和接收器之間交換主密鑰。在位置檢查期間,HDCP發(fā)送器通過要求一對消息之間的往返時間不超過20ms來將位置強加于內(nèi)容。幀計數(shù)是指指示自從HDCP加密開始以來接收到的加密幀的數(shù)目的整數(shù)。例如,根據(jù)HDCP HDMI 2.2規(guī)范,幀計數(shù)可以對應于幀數(shù)目(FrameNumber)或inputCtr。在認證協(xié)議結(jié)束時,在AUTH模式中的發(fā)送器(Tx)和接收器(Rx)200之間建立通信路徑,以用于加密的內(nèi)容的通信。
常規(guī)地并且在本公開所公開的方面之前,當在緊接在SKE之后的第一個加密使能(ENC_EN)處第一次啟用HDCP加密時,幀計數(shù)或inputCtr被初始化為零(見圖1)。然而,根據(jù)本公開,幀計數(shù)與建立HDCP加密并行地被初始化和遞增。如果發(fā)送器(Tx)在200ms延遲之前,但緊接在SKE之前、在SKE期間或SKE之后發(fā)送加密的內(nèi)容(如通過ENC_ENC控制信號與幀的存在所指示的),則因為接收器(Rx)200已經(jīng)在對幀進行計數(shù),因而仍然可以實現(xiàn)密碼同步。該實現(xiàn)方式符合HDCP HDMI 2.2標準。
當接收器200檢測到第一個ENC_EN(或ENC-ENC)控制信號時,接收器200的內(nèi)容加密引擎(Content Encryption Engine,CEE)從零開始幀計數(shù)(202),并且接收器每檢測到另一個ENC_EN幀則使幀計數(shù)遞增1。接收器200的CEE還對從發(fā)送器(Tx)接收到的加密的內(nèi)容進行解密。
在圖2的示例中,接收器200接收第一個ENC-ENC控制信號(102a)以及幀#3,并且將幀計數(shù)初始化為零(202)。當接收到隨同有另一個ENC-ENC控制信號(該控制信號指示存在加密內(nèi)容)的幀#4時,幀計數(shù)增加1。在該示例中,發(fā)送器(Tx)已經(jīng)在PRE-AUTH模式期間并在SKE已經(jīng)建立之前開始發(fā)送加密的內(nèi)容。因此,一旦發(fā)送器(Tx)開始發(fā)送加密的內(nèi)容,即使SKE尚未建立或者盡管接收器仍在PRE-AUTH模式中執(zhí)行其預授權(quán)動作,但幀也已經(jīng)由CEE計數(shù)。
如果在幀計數(shù)開始增加之前加密密鑰沒有被完全編程到接收器200的CEE中,則CEE可以可選地在加密密鑰正被完全編程時輸出臨時圖像,這時可以在下一垂直同步(vertical sync,VSYNC)處進行解密。
參照圖3,雖然在空閑模式中,認證密鑰引擎(Authentication Key Engine,AKE)300接收認證開始信號(AKE_Init),開始認證(301),并且移到認證狀態(tài)(302),同時CEE從空閑模式(305)移到PRE-AUTH模式(307)。然后執(zhí)行SKE(303),并且接收器200的CEE開始從發(fā)送器Tx接收加密的幀(308)。當在AKE 300中認證完成(304)時,CEE還移到POST_AUTH模式(309)。在該實施方式中,當CEE移到PRE_AUTH模式(307)時,CEE立即開始幀計數(shù)(306),并且當接收到加密的幀(308)時,CEE將幀計數(shù)增加1(311)。
執(zhí)行加密的幀的早期檢測,以便維持正確的密碼同步。其它HDCP裝置不需要對幀計數(shù),但需要在建立加密密鑰之前正確地維持其它狀態(tài)。對于狀態(tài)的另一個示例,計數(shù)器由接收器200中的高級加密標準(Advanced Encryption Standard,AES)加密狀態(tài)機來維持。該計數(shù)器(而不是幀計數(shù)器)可以在建立SKE之前更新,并且因此維持密碼同步。
在本實施方式中,在到達POST_AUTH模式之前,內(nèi)容保護算法針對接收的每個加密的幀開始更新狀態(tài)(例如,幀計數(shù)器或AES計數(shù)器)。一旦密鑰交換完成并且CEE到達POST_AUTH模式,引擎的狀態(tài)就已經(jīng)是最新的并且準備對輸入的數(shù)據(jù)進行解密。
有利地,上述實施方式在現(xiàn)有標準內(nèi)操作,從而為便攜式的和電池操作的裝置提供改進的功率性能。盡管參照收發(fā)機對本發(fā)明進行了描述,但是本發(fā)明同樣適用于接收器、發(fā)送器、中繼器和密碼引擎。
通過上面的示例描述,圖2至圖3表示對應于由一個或多個控制器裝置或計算機執(zhí)行以執(zhí)行上述功能、動作或步驟的至少一些指令的一個或多個算法。本文描述的任何方法或算法或功能可以包括用于由以下設備所執(zhí)行的非暫時性機器或計算機可讀指令:(a)處理器、(b)控制器和/或(c)任何其他合適的處理設備。本文所公開的任何算法、軟件或方法可被實施為具有一個或多個非暫時性有形介質(zhì)或媒介的計算機程序產(chǎn)品,該媒介例如閃存、CD-ROM、軟盤、硬盤驅(qū)動器、數(shù)字多功能盤(DVD)或其它存儲設備,但是本領域普通技術人員應該容易理解的是,整個算法和/或其部分可以替選地由除了控制器之外的裝置執(zhí)行和/或可以以已知的方式被實施在固件或?qū)S糜布?例如,其可以由專用集成電路(ASIC)、可編程邏輯器件(PLD)、現(xiàn)場可編程邏輯器件(FPLD)、離散邏輯等等來實現(xiàn))。
盡管已經(jīng)圖示和描述了本公開的特定方面和實施方式,但是應當理解,本公開不限于本文所公開的精確構(gòu)造和組成,而是各種修改、改變和變型在不脫離所附權(quán)利要求中限定的本公開的范圍的情況下根據(jù)前述描述不僅可被預期而且顯而易見的。