HDCP关键密钥保护方法与流程

文档序号:16753597发布日期:2019-01-29 17:07阅读:1668来源:国知局
HDCP关键密钥保护方法与流程

本发明涉及数字内容保护技术领域,尤其涉及一种hdcp关键密钥保护方法。



背景技术:

hdcp(high-bandwidthdigitalcontentprotection,高带宽数字内容保护)是intel为了保护高清数字内容提出的一套协议,目前归dcp组织所有和维护。它描述了认证可信设备,然后在可信设备间传输加密音视频内容的一系列的流程。

在hdcp中有很多密钥,它们的作用范围和影响范围也是各有不同,它们都需要进行保护,但有一个密钥是最关键的,它在所有hdcp设备中是相同的,直接参与加解密,它的影响范围是全局的,这个密钥就是lc128。lc128是一个非常重要的关键密钥,所有权归dcp组织,每个使用hdcp技术的厂商都要承诺保护好这个关键密钥,关键密钥泄露可能会导致巨额赔偿,所以对于关键密钥来说再严密的保护措施都不为过。



技术实现要素:

本发明提供的hdcp关键密钥保护方法,能够对hdcp关键密钥进行最大限度的保护。

第一方面,本发明提供一种hdcp关键密钥保护方法,包括:

在hdcp设备出厂阶段,对所述hdcp设备的设备密钥采用随机选择哈希算法进行计算,生成用于加密hdcp关键密钥的中间密钥;

使用所述中间密钥通过aes算法对所述hdcp关键密钥进行加密,将经过加密的hdcp关键密钥以及所述设备密钥存储到所述hdcp设备的efuse中。

可选地,所述方法还包括:

在所述hdcp设备使用所述hdcp关键密钥进行加解密阶段,对所述efuse中存储的设备密钥采用随机选择哈希算法进行计算,生成中间密钥;

在硬件加密模块采用所述中间密钥对所述efuse中存储的经过加密的hdcp关键密钥进行解密,得到hdcp关键密钥;

采用所述hdcp关键密钥以及其它加密参数对hdcp音视频内容进行加解密

可选地,对设备密钥采用随机选择哈希算法进行计算,生成中间密钥包括:

设置哈希算法选择数组,所述选择数组中每一个数组元素存放一种哈希算法函数的地址;

使用所述设备密钥的预定数量比特通过简单哈希算法进行计算,将计算得到的值作为所述选择数组的下标查找对应的哈希算法;

采用查找到的哈希算法对所述设备密钥进行哈希运算,得到哈希密钥;

当所述哈希密钥为128位时,将所述哈希密钥作为用于加密hdcp关键密钥的中间密钥;当所述哈希密钥不为128位时,对所述哈希密钥进行截取或填充至128位,得到用于加密hdcp关键密钥的中间密钥。

可选地,所述设备密钥的预定数量比特为所述设备密钥的末尾预定数量比特或开头预定数量比特。

可选地,所述对所述哈希密钥进行截取或填充至128位包括:当所述哈希密钥超过128位时,对所述哈希密钥的末尾或开头进行截取至128位;当所述哈希密钥不足128位时,对所述哈希密钥的末尾或开头进行填充至128位。

可选地,所述对所述哈希密钥的末尾或开头进行填充至128位包括:使用所述设备密钥的预定位置的字节对所述哈希密钥的末尾或开头进行填充至128位。

可选地,所述efuse位于所述hdcp设备的可信执行环境中。

本发明实施例提供的hdcp关键密钥保护方法,使用设备出厂生成的唯一的设备密钥通过随机选择哈希算法及加密算法加密hdcp关键密钥,由于每个设备的设备密钥是不同的,可以使得即便黑客能够通过破坏性的手段获取到某一设备的hdcp关键密钥的加密密钥,也不能在其他设备上使用该加密密钥解密hdcp关键密钥密文,避免hdcp关键密钥被其他任何可能的软件破解;通过安全存储硬件efuse进一步保护经过加密的hdcp关键密钥,防止软硬件破解工具获取经过加密的hdcp关键密钥;利用tee进行操作系统隔离,能够减小被攻击面积。

附图说明

图1为本发明一实施例hdcp关键密钥保护方法的流程图;

图2为本发明另一实施例hdcp关键密钥保护方法的流程图;

图3为本发明再一实施例hdcp关键密钥保护方法的流程图;

图4为本发明又一实施例hdcp关键密钥保护方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种hdcp关键密钥保护方法,如图1所示,所述方法包括:

s11、在hdcp设备出厂阶段,对所述hdcp设备的设备密钥采用随机选择哈希算法进行计算,生成用于加密hdcp关键密钥的中间密钥。

所述随机选择哈希算法的具体流程为:

s111、设置哈希算法选择数组,所述选择数组中每一个数组元素存放一种哈希算法函数的地址。

s112、使用所述设备密钥的预定数量比特通过简单哈希算法进行计算,将计算得到的值作为所述选择数组的下标查找对应的哈希算法;其中,所述设备密钥的预定数量比特为所述设备密钥的末尾预定数量比特或开头预定数量比特。

s113、采用查找到的哈希算法对所述设备密钥进行哈希运算,得到哈希密钥。

s114、当所述哈希密钥为128位时,将所述哈希密钥作为用于加密hdcp关键密钥的中间密钥;当所述哈希密钥不为128位时,对所述哈希密钥进行截取或填充至128位,得到用于加密hdcp关键密钥的中间密钥。

具体地,当所述哈希密钥超过128位时,对所述哈希密钥的末尾或开头进行截取至128位;

当所述哈希密钥不足128位时,对所述哈希密钥的末尾或开头进行填充至128位;可选地,可以使用所述设备密钥的预定位置的字节对所述哈希密钥的末尾或开头进行填充至128位。

s12、使用所述中间密钥通过aes(advancedencryptionstandard,高级加密标准)算法对所述hdcp关键密钥进行加密,将经过加密的hdcp关键密钥以及所述设备密钥存储到所述hdcp设备的efuse中。

其中,所述efuse位于所述hdcp设备的tee(trustedexecutionenvironment,可信执行环境)中。efuse是一种重要的非易失性存储单元,由熔丝结构构成,通过熔丝可以在芯片上编程并存储信息。efuse常常用于存储安全相关的内容,比如密钥、密码等信息。在本发明实施例可以通过硬件校验的方法防止efuse二次写入同一个区块,从而达到只能一次写入的目的。

其中,tee利用armtrustzone或intel公司的txt技术直接在cpu硬件上提供的安全区域/非安全区域隔离机制,为敏感应用/数据提供可信执行环境,此环境上可以运行独立的安全操作系统。

本发明实施例提供的hdcp关键密钥保护方法,使用设备出厂生成的唯一的设备密钥通过随机选择哈希算法及加密算法加密hdcp关键密钥,由于每个设备的设备密钥是不同的,可以使得即便黑客能够通过破坏性的手段获取到某一设备的hdcp关键密钥的加密密钥,也不能在其他设备上使用该加密密钥解密hdcp关键密钥密文,避免hdcp关键密钥被其他任何可能的软件破解;通过安全存储硬件efuse进一步保护经过加密的hdcp关键密钥,防止软硬件破解工具获取经过加密的hdcp关键密钥。

本发明实施例提供另一种hdcp关键密钥保护方法,如图2所示,所述方法包括:

s21、在hdcp设备出厂阶段,对所述hdcp设备的设备密钥采用随机选择哈希算法进行计算,生成用于加密hdcp关键密钥的中间密钥。

其中,这里的随机选择哈希算法与步骤s11中的随机选择哈希算法相同,具体流程可以参照步骤s111至步骤s114中的内容。

s22、使用所述中间密钥通过aes算法对所述hdcp关键密钥进行加密,将经过加密的hdcp关键密钥以及所述设备密钥存储到所述hdcp设备的efuse中。

s23、在所述hdcp设备使用所述hdcp关键密钥进行加解密阶段,对所述efuse中存储的设备密钥采用随机选择哈希算法进行计算,生成中间密钥。

s24、在硬件加密模块采用所述中间密钥对所述efuse中存储的经过加密的hdcp关键密钥进行解密,得到hdcp关键密钥。

硬件加密模块在解密得到hdcp关键密钥之后,在其内部寄存器(软件不可访问)进行暂存。

使用中间密钥解密efuse中的关键密钥密文的动作每次上电复位时只进行一次,然后将明文暂存在硬件加密模块内部的寄存器中。加密音视频内容时,硬件加密模块会直接使用暂存的关键密钥明文。

s25、采用所述hdcp关键密钥以及其它加密参数对hdcp音视频内容进行加解密。

本发明实施例提供的hdcp关键密钥保护方法,使用设备出厂生成的唯一的设备密钥通过随机选择哈希算法及加密算法加密hdcp关键密钥,由于每个设备的设备密钥是不同的,可以使得即便黑客能够通过破坏性的手段获取到某一设备的hdcp关键密钥的加密密钥,也不能在其他设备上使用该加密密钥解密hdcp关键密钥密文,避免hdcp关键密钥被其他任何可能的软件破解;通过安全存储硬件efuse进一步保护经过加密的hdcp关键密钥,防止软硬件破解工具获取经过加密的hdcp关键密钥;利用tee进行操作系统隔离,能够减小被攻击面积;使用硬件加密模块缓存解密后的hdcp关键密钥,能够防止外部其他程序在加密音视频过程中非法获取hdcp关键密钥。

下面对本发明实施例提供的hdcp关键密钥保护方法进行详细说明。

如图3所示,在设备出厂阶段:

1、在设备出厂阶段,每个hdcp设备出厂时生成该设备唯一的设备密钥(key_set),这个设备密钥是随机的。

2、对每个设备的设备密钥采用随机选择哈希算法进行处理,为每个设备生成用于加密关键密钥(lc128)的中间密钥:key_lc128。

其中,所述随机选择哈希算法的具体流程如下:

(1)设置哈希算法选择数组,该数组中内置各类哈希算法函数的地址。

(2)通过简单哈希算法(比如平方取中法等),该算法的密钥是设备密钥的某几个比特(比如最后几个比特),进行哈希运算后生成的数作为哈希算法选择数组的下标,选取其中哈希算法。

(3)使用所选取的哈希算法对key_set进行哈希运算,得到哈希密钥。

(4)由于不同哈希算法运算的结果的长度可能是不同的,而加密关键密钥所需的密钥是固定的,需要128位。因此需要将哈希密钥进行截取或填充,使其位数满足128位。截取或填充的位置可以是在哈希密钥的末尾或者开头,填充的数可以是设备密钥的一部分或其他(比如设备密钥中的某几个字节,在实现时需要约定好)。填充或截取完毕所得出的结果就是用于加密关键密钥的中间密钥key_lc128。

3、使用key_lc128通过aes算法加密lc128,生成lc128密文,并将lc128密文存储到具有反克隆(anti-clone)功能的efuse中。由于每个设备的key_lc128都是不同的,所以每个设备的lc128密文也是不一样的。

上述具有反克隆功能的efuse放在tee侧,与ree(richexecutionenvironment,富执行环境)操作系统隔离,只有tee侧的操作系统才能访问,相对于tee,ree就是普通的执行环境,提供大部分应用程序的执行环境。这样就能阻止外部不法程序访问,从而大大缩小攻击范围。efuse本身就带防篡改功能,而带反克隆功能又能预防某些硬件破解工具强制获取efuse中的内容,从而进一步保证了key_set的安全。

如图4所示,在设备使用hdcp加密/解密阶段:

1、应用上述随机选择哈希算法以及设备密钥算出lc128密文的加密密钥:key_lc128。

2、使用硬件加密模块对efuse中的lc128密文使用key_lc128进行解密,得到的lc128明文,并在硬件加密模块中暂存。

3、hdcp音视频内容加密时,直接在硬件加密模块中采用除关键密钥lc128以外的其他加密参数进行加密。

上述随机选择哈希算法由于在加密和解密时的生成规则是一样的,每个设备的设备密钥是唯一且出厂固定的,不管是加密还是解密,对于同一个设备来说,采用随机选择哈希算法每次生成的值也是一样的,因此可以将采用随机选择哈希算法得到的key_lc128作为加密关键密钥lc128的密钥。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1