机顶盒芯片及应用在机顶盒芯片中的数字签名实现方法

文档序号:7996233阅读:432来源:国知局
机顶盒芯片及应用在机顶盒芯片中的数字签名实现方法
【专利摘要】本发明提供一种机顶盒芯片及应用在机顶盒芯片中的数字签名实现方法,所述数字签名实现方法包括:首先,使用所述芯片的密钥对RSA公钥进行加密,获得RSA公钥密文;然后将所述RSA公钥密文存储至所述Flash中的预设空间;接着对RSA公钥运行哈希算法,获取所述RSA公钥的哈希值;最后将所述RSA公钥的哈希值植入所述芯片的OTP寄存器中以供所述芯片启动时进行签名验证。于本发明中,由于哈希算法的引入,新的实现方法有效的降低了芯片内部OTP资源的使用,进而降低了芯片成本,另外,由于芯片密钥具有唯一性的特点,使用其对RSA公钥进行加密有效的提高了芯片安全性。
【专利说明】机顶盒芯片及应用在机顶盒芯片中的数字签名实现方法
【技术领域】
[0001]本发明涉及数字电视芯片【技术领域】,特别是涉及一种机顶盒芯片及应用在机顶盒芯片中的数字签名实现方法。
【背景技术】
[0002]随着截止时间的临近和数字技术的发展,中国的数字电视转换步伐逐步加快,截止到2010年中国的有线数字电视用户已经超过8000万,IPTV用户已达到850万。随着经济的快速发展和生活水平的不断改善,部分用户对节目品位的要求也在不断提高。为了满足不同用户对节目质量和节目类别的差异化需求,通过付费的方式向特定用户开放相应节目的观看权限逐步成为当前运营方式的主流。
[0003]同时由于利益的驱动,针对现有机顶盒芯片在安全方面的不足,通过各种方式非法观看付费节目的现象屡见不鲜,甚至越来越多的盗版机顶盒在市场上也频频出现。为了尽可能的保证运营商及机顶盒厂商的利益,必须从芯片设计阶段就开始考虑提高产品的安全性能。因此,具有高级安全特性的数字电视芯片应运而生。
[0004]为了保证机顶盒Flash中代码的完整性,验证Flash中Loader程序的数字签名是一种防止黑客篡改并运行非授权程序的有效方式。在对程序的签名验证中,目前主要采用的是非对称的RSA算法(RSA是Rivest、Shamir和Adleman提出来的基于数论非对称性(公开钥)加密算法,亦称非对称算法)。该算法要求CA厂商利用其私钥对程序进行签名,在机顶盒启动过程中使用与其配对的公钥进行验证。为了保证芯片启动时只能使用CA厂商提供的RSA公钥进行验签,并保证芯片的通用性,一般将其植入到芯片内部的OTP (One-timeProgrammable,简称OTP)寄存器中。随着安全强度需求的提高,目前机顶盒领域安全芯片已普遍使用2048BIT的密钥长度,这将使得芯片内嵌OTP面积急剧增长,从而增加了芯片成本。

【发明内容】

[0005]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种机顶盒芯片及应用在机顶盒芯片中的数字签名实现方法,用于解决现有技术中因芯片内嵌OTP面积增长而带来的芯片成本高的问题。
[0006]为实现上述目的及其他相关目的,本发明提供一种应用在机顶盒芯片中的数字签名实现方法,所述数字签名实现方法包括:使用所述芯片的密钥对RSA公钥进行加密,获得RSA公钥密文;将所述RSA公钥密文存储至所述Flash中的预设空间;对RSA公钥运行哈希算法,获取所述RSA公钥的哈希值;将所述RSA公钥的哈希值植入所述芯片的OTP寄存器中以供所述芯片启动时进行签名验证。
[0007]本发明数字签名实现方法的中,还包括对加载程序进行签名的步骤:令预存在所述Flash中加载程序运行相应的哈希算法,获取对应的哈希值;使用RSA私钥对获取的哈希值进行签名,以获取加载程序签名;将所述加载程序签名存储至所述Flash中的预设空间。[0008]本发明数字签名实现方法中,所述芯片启动时进行签名验证的步骤包括:从所述Flash中加载所述RSA公钥密文,并使用所述芯片的密钥对其解密,获得RSA公钥明文;对所述RSA公钥明文运行相应的哈希算法以获取哈希值;验证获取的哈希值与所述芯片的OTP寄存器中植入的所述RSA公钥的哈希值是否一致,若一致,则所述RSA公钥明文有效;若不一致,则所述RSA公钥明文无效,则验证失败,进入CPU挂起状态;使用该有效的RSA公钥明文对所述加载程序签名运行签名验证算法;若签名验证通过,运行加载程序;若签名验证未通过,进入CPU挂起状态。具体地,所述芯片启动时进行签名验证的步骤中还包括预先判断启动模式是否为安全模式的步骤,若是,则从所述Flash中加载所述RSA公钥密文,并使用所述芯片的密钥对其解密,获得RSA公钥明文;若否,则直接从所述Flash中加载并运行所述加载程序。
[0009]本发明还提供一种机顶盒芯片,包括=Flash存储器,包括存储有加载程序的程序存储区、存储有加载程序签名的签名存储区、以及存储有RSA公钥密文的公钥存储区,其中,所述RSA公钥密文由使用芯片密钥对RSA公钥进行加密时生成;以及OTP寄存器,包括存储有RSA公钥哈希值的存储区及存储有芯片密钥的密钥存储区,其中,所述RSA公钥哈希值由RSA公钥运行哈希算法生成。
[0010]本发明的机顶盒芯片中,所述加载程序签名由加载程序运行相应的哈希算法获取对应的哈希值,并使用RSA私钥对其进行签名生成。
[0011]如上所述,本发明的机顶盒芯片及应用在机顶盒芯片中的数字签名实现方法,在芯片内部OTP中植入RSA公钥的哈希值,同时将使用芯片密钥加密后的RSA公钥密文存储在Flash中。在每次重启时,首先利用芯片中植入的RSA公钥的哈希值以及芯片密钥验证Flash中RSA公钥密文的有效性,验证通过后使用解密后的RSA公钥完成Flash中Loader程序签名验证。由于哈希算法的引入,新的实现方法有效的降低了芯片内部OTP资源的使用,进而降低了芯片成本。由于芯片密钥具有唯一性的特点,使用其对RSA公钥进行加密有效的提高了芯片安全性。
【专利附图】

【附图说明】
[0012]图1显示为本发明提的应用在机顶盒芯片中的数字签名实现方法流程图。
[0013]图2显示为本发明的机顶盒芯片在启动时进行签名验证的方法流程图。
[0014]图3显示为本发明机顶盒芯片的数据存储框图。
【具体实施方式】
[0015]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0016]需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。[0017]为了在满足芯片安全性需求前提下,尽可能的减少芯片成本,本实施方式中提出了一种新的Loader程序的签名验证实现方法,为方便阐述本发明的原理,于本实施方式中,技术方案中涉及的采样算法将以RSA-2048,SHA-1为例进行说明,然,并不局限于此,所述算法亦可为SHA-256算法。
[0018]为详述本发明的原理及功效,请参阅图1,显示为本发明提的应用在机顶盒芯片中的数字签名实现方法流程图,如图所示,所述数字签名实现方法包括以下步骤:
[0019]步骤Sll:令预存在Flash中加载程序运行相应的哈希算法,获取对应的哈希值;即,将参与验证的Boot Loader程序运行相应的哈希算法,得到对应的哈希值。于本实施例中,所述哈希算法以SHA-1为例。需要特别说明的是,所述Flash可以为所述机顶盒芯片中的Flash存储器,也可以为设置在所述机顶盒芯片之外的Flash存储芯片。
[0020]步骤S12:使用RSA私钥对获取的哈希值进行签名,以获取加载程序签名;具体地,使用RSA私钥对获取的哈希值进行签名,获取Boot Loader签名,于本实施例中,所述的使用RSA私钥对获取的哈希值进行的签名长度为2048比特。
[0021]步骤S13:将所述加载程序签名存储至所述Flash中的预设空间;于本实施例中,所述Flash可以为所述机顶盒芯片中的Flash存储器,也可以为设置在所述机顶盒芯片之外的Flash存储芯片。
[0022]步骤S14:使用所述芯片的密钥对RSA公钥进行加密,获得RSA公钥密文;于本实施例中,获得的RSA公钥密文长度为2048比特,所述芯片的密钥长度均为128比特,解密算法使用TDES(即数据加密密钥与解密密钥相同的加密算法)或者AES(AdVanced EncryptionStandard,简称 AES,又称 Rijndael 加密法)。
[0023]步骤S15:将所述RSA公钥密文存储至所述Flash中的预设空间。
[0024]步骤S16:对RSA公钥运行哈希算法,获取所述RSA公钥的哈希值。于本实施例中,所述RSA公钥的哈希值长度为160比特。
[0025]步骤S17:将所述RSA公钥的哈希值植入所述芯片的OTP寄存器中以供所述芯片启动时进行签名验证。
[0026]本发明对RSA公钥使用芯片密钥进行加密,Flash中存储RSA公钥的密文,因此采用本发明提供的设计方法将大大减小片内OTP存储资源的使用,进而降低芯片成本。
[0027]请参阅图2,显示为本发明的机顶盒芯片在启动时进行签名验证的方法流程图,如图所示,所述机顶盒芯片在启动时进行签名验证的方法包括以下步骤:
[0028]步骤S21:首先,预先判断启动模式是否为安全模式,若是,则进止步骤S22 ;若否,则进止步骤S28,即直接从所述Flash中加载并运行所述加载程序。
[0029]步骤S22:从所述Flash中加载所述RSA公钥密文,并使用所述芯片的密钥对其解密,获得RSA公钥明文,所述芯片的密钥长度为128比特,解密算法使用TDES或者AES。
[0030]步骤S23:对所述RSA公钥明文运行相应的哈希算法以获取哈希值。于本实施例中,所述RSA公钥的哈希值长度为160比特。
[0031]步骤S24:验证获取的哈希值与所述芯片的OTP寄存器中植入的所述RSA公钥的哈希值是否一致,若一致,则进止步骤S25 ;若不一致,则进止步骤S29。
[0032]步骤S25:所述RSA公钥明文有效,即验证结果一致说明该组公钥有效。
[0033]步骤S26:使用该有效的RSA公钥明文对所述加载程序签名运行签名验证算法。[0034]步骤S27,判断签名验证是否通过,若是,则进止步骤S28 ;若否,则进止步骤S29。
[0035]:步骤S28:签名验证通过,运行加载程序,即正常运行Boot Loader程序。
[0036]步骤S29:所述RSA公钥明文无效,则验证失败,进入CPU挂起状态。
[0037]本发明对RSA公钥使用芯片密钥进行加密,Flash中存储RSA公钥的密文,在芯片启动过程中首先使用芯片密钥解密RSA公钥,由于芯片密钥具备唯一性的特点,且对软件不可见,黑客即使破解了 RSA密钥对,也难以得到每颗芯片对应的RSA公钥密文,从而增强了芯片安全性。
[0038]请参阅图3,显示为本发明机顶盒芯片的数据存储框图,如图所示,本发明的机顶盒芯片I包括=Flash存储器11及OTP寄存器12。 [0039]所述Flash存储器包括存储有加载程序(即Boot Loader程序)的程序存储区113、存储有加载程序签名的签名存储区114、以及存储有RSA公钥密文的公钥存储区115,其中,所述RSA公钥密文由使用芯片密钥对RSA公钥进行加密时生成;所述加载程序签名由加载程序运行相应的哈希算法获取对应的哈希值,并使用RSA私钥对其进行签名生成。于本实施例中,所述公钥存储区115存储的RSA公钥密文长度为2048比特。所述签名存储区114存储的加载程序签名的长度为2048比特。于具体的实施例中,所述Flash存储器11中还包括APP储存区111及APP签名存储区112。
[0040]所述OTP寄存器12包括存储有RSA公钥哈希值的存储区121及存储有芯片密钥的密钥存储区122,其中,所述RSA公钥哈希值由RSA公钥运行哈希算法生成。于本实施例中,所述RSA公钥哈希值长度为160比特,所述芯片的密钥长度为128比特,解密算法使用TDES或者AES。因此采用本发明提供的芯片将大大减小片内OTP存储资源的使用,进而降低芯片成本。
[0041]由上可知,本发明提供的实现方法则是在将RSA公钥的哈希值植入内部OTP中,而将经过芯片密钥加密后的RSA公钥密文放到的Flash中。目前常用RSA算法一般采用2048比特密钥强度,而哈希算法的摘要长度明显小于该长度(以SHA-1为例只有160比特),因此采用本发明提供的设计方法将大大减小片内OTP存储资源的使用,进而降低芯片成本。请参阅表1,表示为传统实现方案与新的实现方案芯片资源消耗对比,如表所示:
[0042]
哈名 --RSA氺发別/;? 0.1P

IiiniS^(UH)-- Π?(BH)
RSA-10241024864
SHA-X--160-
RSA-204820481SS8
RSA-10241024768
SHA-256----256-
RSA-204820481792
[0043]由于哈希算法存在一定的碰撞风险,并且RSA算法本身也存一定的破解风险,一旦RSA密钥对被破解将导致整批使用该RSA密钥对的机顶盒均不能被继续使用,给厂商带来巨大的经济损失,为提高安全性,本发明对RSA公钥使用芯片密钥进行加密,Flash中存储RSA公钥的密文,在芯片启动过程中首先使用芯片密钥解密RSA公钥,由于芯片密钥具备唯一性的特点,且对软件不可见,黑客即使破解了 RSA密钥对,也难以得到每颗芯片对应的RSA公钥密文,从而增强了芯片安全性。
[0044]综上所述,本发明的机顶盒芯片及应用在机顶盒芯片中的数字签名实现方法,在芯片内部OTP中植入RSA公钥的哈希值,同时将使用芯片密钥加密后的RSA公钥密文存储在Flash中。在每次重启时,首先利用芯片中植入的RSA公钥的哈希值以及芯片密钥验证Flash中RSA公钥密文的有效性,验证通过后使用解密后的RSA公钥完成Flash中Loader程序签名验证。由于哈希算法的引入,新的实现方法有效的降低了芯片内部OTP资源的使用,进而降低了芯片成本。由于芯片密钥具有唯一性的特点,使用其对RSA公钥进行加密有效的提高了芯片安全性。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0045]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属【技术领域】中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【权利要求】
1.一种应用在机顶盒芯片中的数字签名实现方法,其特征在于,所述数字签名实现方法包括: 使用所述芯片的密钥对RSA公钥进行加密,获得RSA公钥密文; 将所述RSA公钥密文存储至Flash中的预设空间; 对RSA公钥运行哈希算法,获取所述RSA公钥的哈希值; 将所述RSA公钥的哈希值植入所述芯片的OTP寄存器中以供所述芯片启动时进行签名验证。
2.根据权利要求1所述的应用在机顶盒芯片中的数字签名实现方法,其特征在于:还包括对加载程序进行签名的步骤: 令预存在Flash中加载程序运行相应的哈希算法,获取对应的哈希值; 使用RSA私钥对获取的哈希值进行签名,以获取加载程序签名; 将所述加载程序签名存储至所述Flash中的预设空间。
3.根据权利要求1或2所述的应用在机顶盒芯片中的数字签名实现方法,其特征在于:所述芯片启动时进行签名验证的步骤包括: 从所述Flash中加载所述RSA公钥密文,并使用所述芯片的密钥对其解密,获得RSA公钥明文; 对所述RSA公钥明文运行相应的哈希算法以获取哈希值; 验证获取的哈希值与所述芯片的OTP寄存器中植入的所述RSA公钥的哈希值是否一致,若一致,则所述RSA公钥明文有效;若不一致,则所述RSA公钥明文无效,则验证失败,进入CPU挂起状态; 使用该有效的RSA公钥明文对所述加载程序签名运行签名验证算法;若签名验证通过,运行加载程序;若签名验证未通过,进入CPU挂起状态。
4.根据权利要求3所述的应用在机顶盒芯片中的数字签名实现方法,其特征在于:所述芯片启动时进行签名验证的步骤中还包括预先判断启动模式是否为安全模式的步骤,若是,则从所述Flash中加载所述RSA公钥密文,并使用所述芯片的密钥对其解密,获得RSA公钥明文;若否,则直接从所述Flash中加载并运行所述加载程序。
5.一种机顶盒芯片,其特征在于,包括: Flash存储器,包括存储有加载程序的程序存储区、存储有加载程序签名的签名存储区、以及存储有RSA公钥密文的公钥存储区,其中,所述RSA公钥密文由使用芯片密钥对RSA公钥进行加密时生成; OTP寄存器,包括存储有RSA公钥哈希值的存储区及存储有芯片密钥的密钥存储区,其中,所述RSA公钥哈希值由RSA公钥运行哈希算法生成。
6.根据权利要求5所述的机顶盒芯片,其特征在于:所述加载程序签名由加载程序运行相应的哈希算法获取对应的哈希值,并使用RSA私钥对其进行签名生成。
【文档编号】H04L9/30GK103974122SQ201310042010
【公开日】2014年8月6日 申请日期:2013年2月4日 优先权日:2013年2月4日
【发明者】许树娜, 莫国兵 申请人:澜起科技(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1