首页> 中国专利> 具有特许存储器的设备及其应用

具有特许存储器的设备及其应用

摘要

本发明涉及具有特许存储器的设备及其应用。一种设备包括密钥存储存储器、规则集存储器、多个密码处理客户端以及密钥存储仲裁模块。所述密钥存储存储器存储多个密钥并且所述规则集存储器存储用于访问所述密钥的规则集。密码处理客户端可操作用于发出访问密钥的请求,并且当允许对密钥进行访问时,执行关于至少一部分密钥的密码处理功能以便产生密码处理结果。所述密钥存储仲裁模块可操作用于确定对密钥的访问请求是否有效;当请求有效时,解译所述请求以产生解译后的请求;基于所述解译后的请求访问规则集存储器以便检索所述规则集的规则;并且允许按照所述规则访问密钥。

著录项

  • 公开/公告号CN101673251A

    专利类型发明专利

  • 公开/公告日2010-03-17

    原文格式PDF

  • 申请/专利权人 VIXS系统公司;

    申请/专利号CN200910205792.5

  • 发明设计人 P·杜查米;N·V·D·斯图尔特;

    申请日2009-09-07

  • 分类号

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人屠长存

  • 地址 加拿大安大略

  • 入库时间 2023-12-17 23:44:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-08-27

    未缴年费专利权终止 IPC(主分类):G06F12/14 授权公告日:20140723 终止日期:20180907 申请日:20090907

    专利权的终止

  • 2014-07-23

    授权

    授权

  • 2011-09-28

    实质审查的生效 IPC(主分类):G06F12/14 申请日:20090907

    实质审查的生效

  • 2010-03-17

    公开

    公开

说明书

相关专利的交叉引用

基于35USC§119,此专利申请要求临时申请日为2008年9月5日,临时序号为61/094,541,且标题为“Secure Methods for System on a ChipCryptographic Key Access and Storage”的临时提交的专利申请的优先权。

技术领域

本发明总体上涉及包括存储器的设备,更具体而言,涉及对设备内的存储器的安全访问。

背景技术

一部分人推动着使DVD的视频内容(和/或依照数字格式存储的其它有版权或者所有权的信息)免遭未授权使用(例如,未授权复制、分发等)的危险的愿望,这些人认为他人的知识产权价值低或者毫无价值。因而,为数字信息创建安全系统与企图破坏它们的黑客之间的战斗一直在延续。

这场战斗因在单个设备上实现电子设备特性的集成(例如,具有DVD功能的计算机)而加剧,并且因为将视频处理硬件实现为独立的芯片上系统(SOC)设备而进一步加剧。在许多情况下,所述视频处理硬件SOC使用的操作系统允许终端用户写入他们自己的应用程序,这意味着用户的应用程序可以共享与安全系统相同的处理器和存储器空间。这使得安全操作易受攻击。为了降低受攻击的可能性,视频处理硬件需要被限制为只执行特别预定类型的密码处理(cryptographic)操作。

另外,包括视频处理硬件SOC的视频处理设备嵌有符合多种视频应用程序标准(例如,BD、DTCP、CPRM、电缆卡(Cable Card)等)的一个或多个的许可秘密密钥。通常,这种视频应用程序标准包括废弃(revocation)机制,借此,如果秘密密钥值被公布于众,那么泄密的设备的安全功能被废弃,并且使该设备不能工作。同样地,非常希望的是,把秘密密钥按照它们无法被设备固件访问的方式来存储(以避免废弃)。这一般是通过将秘密密钥存储在一次性可编程(OTP)存储器中来实现的。

虽然使用OTP存储器已经成为在视频处理设备内存储秘密密钥的主要机制,但是它不是一种万无一失的方式。例如,当多个密码处理客户端(cryptographic client algorithm)(例如,用于执行诸如RSA、TSD、1394、DMA等的特定密码处理算法的硬件块)可能向OTP存储器异步地发出读或写请求并且所述请求不是最小单元(atomic)时,会出现安全性问题。另外,由于与OTP存储器相关联的粒度,较大密钥值被划分为较小的块,这些较小的块具有强加于每块之上的特定读/写规则。由此,必须把对密码处理客户端的宏级限制向下关联至客户端执行的每一微级块访问。

作为一个特定的示例,RSA算法能够执行2048位RSA运算,这要求从密钥存储设备中读取64位块32次,以便组合指数。如果密钥被意图用作2048位指数,那么每个64位块的读取必须与密钥的希望用途相关联;即,这些块必须具有用于指示哪个密码处理客户端被允许访问与较大密钥相关联的特定块的属性。

另一个安全问题在于密码处理强度往往取决于使用大的密钥(例如,对于RSA而言,高达2048位,或者对于某些AES模式来说256位)。然而,如果由较为薄弱的密码处理客户端使用大的密钥,每次一个64位块,那么所述大的密钥一次会被攻击64位(或者更少)。攻击大密钥的又一种方式是:用0来重写部分密钥,然后,利用弱化的密钥其余部分来执行预定的操作。每当部分密钥被以这种方式损坏时,其余部分能够被确定出,这是因为部分密钥此刻是已知的。

更进一步讲,某些密码处理客户端具有以各级强度执行操作的能力;例如,所述RSA可以被配置为可变大小模数,而3DES能够降级为DES操作。黑客能够采用这些操作来执行较弱的操作,并且由此利用已降级的操作来攻击大密钥。甚至,某些密码处理客户端使用安全操作中的控制字(CW)和初始向量(IV)。当已知明文和CW时,在操作中通过将CW用作IV,可以攻击安全系统的完整性,这会用来揭示CW值。

保持密码处理操作完整性的另一重要方面是控制密码处理操作结果的目的地。例如,从SOC输出的内容与保留在SOC内的内容相比,会面临更大的风险。攻击的又一种模式就是使用密钥、CW或者IV来解密内容,而不是加密内容。例如,可能打算加密内容,然而黑客可能使用密钥存储值来解密内容。

除黑客的威胁之外,安全内容信息的安全性还会受到来自未授权公共公开的风险。例如,如果被惹怒的雇员在互联网上公布密钥的算法和位置,那么所述算法的安全性就丧失了。照此,安全系统的风险不仅仅来自于外部人员对算法安全性的破坏,而且还来自于内部人员对安全系统完整性的故意损害。

因此,存在对至少部分克服上述安全问题中的一个或多个安全设备体系结构的需要。

附图说明

图1是依照本发明的视频图形显示设备的示意性框图;

图2是依照本发明的设备的实施例的示意性框图;

图3是依照本发明的设备的另一实施例的示意性框图;

图4是依照本发明用于访问密钥(cryptographic key)的方法的实施例的逻辑图;

图5是依照本发明的请求的示例的图;

图6是依照本发明的规则的示例的图;

图7是依照本发明用于处理对密钥的读取访问请求的方法的实施例的逻辑图;

图8是依照本发明用于处理对密钥的写入访问请求的方法的实施例的逻辑图;

图9是依照本发明用于解译对密钥的请求的方法的实施例的逻辑图;

图10是依照本发明的一次性可编程存储器的示例的图;

图11是依照本发明的设备的另一实施例的示意性框图;

图12是依照本发明用于访问特权存储器的方法的实施例的逻辑图;

图13是依照本发明用于处理对访问特权存储器的读取请求的方法的实施例的逻辑图;

图14是依照本发明用于处理对访问特权存储器的写入请求的方法的实施例的逻辑图;

图15是依照本发明用于解译对访问特权存储器的请求的方法的实施例的逻辑图;以及

图16是依照本发明的一次性可编程存储器的另一个示例的图。

具体实施方式

图1是视频图形显示设备10的一个实施例的示意性框图,所述视频图形显示设备10包括处理模块12、存储器开关14、主存储器16、图形处理模块18、图形存储器20、硬盘和/或闪存22以及输入/输出(IO)接口24和26。IO接口24和26中的每一个分别包括IO寄存器28和30。应注意的是,所述视频图形显示设备10可以是计算机、膝上型计算机、DVD播放器、便携式数字音频/视频播放器等,并且可以包括多个IO接口24和26。此外应注意的是,每一IO接口24和26均可包括多个IO寄存器28和30。

所述处理模块12可以是单个处理设备或者是多个处理设备。这种处理设备可以是微处理器、微控制器、数字信号处理器、微型计算机、中央处理单元、现场可编程门阵列、可编程逻辑器件、状态机、逻辑电路、模拟电路、数字电路和/或基于电路的硬编码和/或操作指令来处理信号(模拟和/或数字)的任何设备。所述处理模块可以具有相关联的存储器和/或存储元件,所述存储器和/或存储元件可以是单个存储器设备、多个存储器设备和/或处理模块的嵌入式电路。这种存储器设备可以是只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪存、高速缓冲存储器和/或存储数字信息的任何设备。应注意的是,当所述处理模块经由状态机、模拟电路、数字电路和/或逻辑电路来实现其一个或多个功能时,用于存储对应的操作指令的存储器和/或存储元件可嵌入在电路内部或者可以位于电路外部,所述电路包括状态机、模拟电路、数字电路和/或逻辑电路。此外应注意的是,所述存储元件存储对应于图1-16中示出的至少某些步骤和/或功能的硬编码和/或操作指令,并且所述处理模块执行这些硬编码和/或操作指令。

在一个操作示例中,IO接口中的一个或多个接收指令以显示视频文件。所述视频文件可以来自DVD,可以存储在硬盘和/或闪存中,从卫星接收器接收,从有线机顶盒接收和/或来自任何其它视频内容数据源。应注意的是,IO接口24和/或26的一个或多个可以接收所述视频文件。使用特定的加密程序以及由一个或多个视频标准规定的一个或多个密钥来加密所述视频文件。

在此例子中,所述处理模块12协调从主存储器16、硬盘和/或闪存22、IO接口24和或26和/或其它源中对视频文件的检索。加密的视频文件可以包括视频数据、音频数据、视频图形数据和/或要求安全性的任何其它类型的数据。所述处理模块12唤起密码处理客户端算法(例如,RSA、DES等)并且从安全存储位置(例如,特许存储器(privileged memory))中检索密钥。下面将参考图2-16中的一个或多个来描述所述安全存储位置。

所述处理模块12使用密码处理客户端算法和密钥来解密已加密的数据,以产生解密的数据。解密的数据被提供给图形处理模块18。视频图形处理模块18可以是视频图形卡、视频图形引擎、视频图形处理器、其组合和/或用于呈现视频数据的任何其它设备。在此例子中,图形处理模块18把解密的数据转换为视频数据并且将其存储在图形存储器20中以供后续显示。

所述视频图形显示设备10具有三类的存储器访问。最安全的类别允许访问系统存储器(例如,主存储器16和/或硬盘和/或闪存22)并且允许经由IO接口24和26访问IO设备;允许访问图形存储器20(例如,帧缓冲器);并且允许访问安全存储位置。下一级的安全访问允许访问系统存储器并且允许经由IO接口24和26访问IO设备。第三访问级允许访问系统存储器。

图2是设备的一个实施例的示意性框图,所述设备包括硬件(HW)部分32(例如,处理模块12、存储器开关14、图形处理模块18、IO接口24和26等)以及软件(SW)部分34,所述软件部分34被存储在系统存储器(例如,主存储器16和/或硬盘和/或闪存22)中。所述软件部分34包括一个或多个操作系统(OS)36、应用编程接口(API)部分38、应用程序部分40以及特许部分(privileged section)42。所述软件部分34可以存储在设备的存储器(例如,设备10的主存储器16、图形存储器20、硬盘/闪存22和/或IO寄存器28和30)中。特许存储器部分42可以在设备的存储器中和/或在一次性可编程存储器中。

图3是设备的另一个实施例的示意性框图,所述设备包括硬件部分(HW)32以及软件部分(SW)34。在此实施例中,所述软件部分34包括应用程序部分40、操作系统36以及特许部分42。所述应用程序部分40包括多个用户应用程序60、多个系统应用程序62以及多个密码处理客户端应用程序56-58。多个密码处理应用程序包括AES(预先加密标准,advanced encryption standard)、DES(数据加密标准,data eneryption standard)、3DES、Multi-2加密、DVB(数字视频广播,digital video broadcasting)、C2(柳杉密码,cryptomeriacipher)、CSS(内容扰乱系统,content scramble system)、MDMI(HDCP)、1394(M6)、RSA、ECC(椭圆曲线密码,elliptical curve cryptography)、Register(寄存器)、其任何变形、其任何进一步的版本和/或任何新的加密标准或者技术的中两个或更多个。

所述特许存储器部分42可以使用一个或多个一次性可编程(OTP)存储器、RAM和/或ROM来实现。所述OTP存储器可用来存储密钥的默认集和规则集部分52。密钥存储部分50把一个或多个密码处理客户端的一个或多个密钥存储在OTP存储器、RAM和/或ROM中。所述密钥存储部分50可以包括存储块,其中一个或多个块存储密钥。规则集部分52存储用于访问密钥存储部分50的规则。将参照图4-16中的至少某些图来更加详细地描述各种规则。

图3的设备还包括仲裁模块54,所述仲裁模块54可以是操作系统36的一部分,可存储在特许存储器42中,和/或可以是独立的模块(例如,独立的状态机、独立的处理器等)。无论其位置如何,所述仲裁模块都基于所述规则集来协调对密钥存储部分50的访问。依照此方式,访问请求必须来自授权的固件组件(例如,真正的密码处理客户端),并且所述请求必须依照如规则集中描绘的、基于请求者的身份的特定方式。如果失败(例如,未授权的请求者(例如,固件正由黑客操纵)或者无效的请求方式),那么仲裁模块54将拒绝所述请求,忽略所述请求或者响应于所述请求提供随机数据。

采用该实施方式,基本上实现了硬件系统的安全性以及软件系统的灵活性。例如,通过利用单个OTP来存储用于访问密钥的永久性规则,基本上避免了软件系统的易受攻击性,并且还基本上避免了对于单一标准使用硬连线单一功能的硬件系统的不灵活性。

图4是用于访问密钥的方法的一个实施例的逻辑图,所述方法从步骤70开始,在此密码处理客户端发出对多个密钥中的一个密钥的访问请求。所述请求应该依照特定的格式,所述格式包括读/写指示、至少一部分密钥的地址、密码处理结果的源或者目的地以及对应于密码处理功能的密码处理算法的标识(如果所述源接近目的地并且密钥存储内容是密钥/CW或者IV的话)。然后,所述方法进行到步骤72,此处,密钥存储仲裁模块54确定密钥访问请求是否有效。例如,如果所述请求不是来自授权实体(例如,实现诸如密码处理客户端的功能的固件),那么仲裁模块将指示所述请求无效。照此,黑客想要访问密钥存储部分的企图将无效并且将失败,如图步骤76所示那样。

然而,如果在步骤74,所述请求被确定为有效,那么所述方法继续步骤78,其中所述仲裁模块解译对密钥的访问请求以便产生解译后的请求。这些将参照图9更加详细地描述。所述方法继续步骤80,其中仲裁模块基于解译后的请求访问规则集存储器以便检索所述规则集的规则。将参照图6描述规则的示例。

所述方法继续步骤82,其中所述仲裁模块允许按照规则对密钥进行访问。应注意的是,所述规则集同样可以指示所述访问依照规则是不被允许的,并包括拒绝请求、忽略请求或者提供随机数据。所述方法继续步骤84,其中当允许访问密钥时,密码处理客户端关于至少一部分密钥执行密码处理功能以便产生密码处理结果。

图5是请求90的一个示例的图,所述请求90包括读/写(R/W)指示92、地址96、源97、目的地98、密码处理算法标识100(例如,密码处理客户端的ID)以及密钥类型。如果R/W指示92是写入请求,那么所述请求还将包括待写的数据94(例如,密钥、代码字或者初始向量)。所述地址部分96指示x位(例如,64位)的块的起始地址。

源部分97指示密码处理结果的启动程序(initiator),而目的地部分98指示密码处理结果将被发送的地方。有效的源和目的地包括系统主存储器、密钥存储部分、IO寄存器和/或图形存储器。使用的密码处理算法可以被识别为ANY、NONE、AES、DES、3DES、Multi-2、DVB、C2、CSS、MDMI(HDCP)、1394(M6)、RSA、ECC和/或Register。

在一个实施例中,可以使用接近规则。例如,当特定的客户端启动加密操作时,规则存储部分确定密钥存储部分中什么样的密钥块可以被访问。通过改进,所述规则中还包括其它的位,借此,当实施所述规则时,确定密钥存储块可以被访问的顺序。进一步增加限制的话,规定块的特定序列。进一步减少限制的话,依照规定的顺序访问密钥存储块组。

图6是规则集中的一个规则101的示例的图。所述规则101包括算法部分103、源和目的地部分105以及内容部分107。所述算法部分103识别被授权经由读取请求和/或写入请求来访问密钥存储部分的有效算法。对于给定的算法和请求而言,目的地部分105指示此算法可以发送其密码处理结果的一个或多个有效目的地。所述内容部分107识别有效的密钥类型(例如,密钥、控制字和/或初始向量)。

在一个实施例中,规则存储部分52包含与密钥存储块关联的位掩码。用于规则的位映象如下:

  字段  读算法  参见算法列表  写算法:  参见算法列表

  目的地 110b=FB101b=SYS,/IO011b=Key_Store000b=无输出  内容类型 1b=CW或Key(密钥)0b=IV  源 110b=FB101b=SYS,/IO011b=Key_Store000b=无输出  接近 0=无限制,1=必须是接近的

注意:如果算法=ANY,那么位{8,...,15}是被忽略的规则。

  算法  描述  ANY  允许任何算法(注意00000b=OTP默认)。  AES  ECB,CBC,CTR,OFB,CFB  CSS  DES,2DES  ECB,CBC  3DES  ECB,CBC  Multi-2  DVB  C2  MDMI(HDCP)  RSA  ECC  Register I/F  寄存器接口  Reserved  Reserved  NONE  没有算法可以访问块。

在此实施例中,规则是用于指示密钥存储部分中对应的块(例如,64位)可以如何被访问的位(例如,16)的组。作为默认,由于OTP中的所有位默认为0,因此具有未初始化规则的块提供了不受限制的访问(即,没有限制)。

就接近规则而言:它向某些密码处理客户端提供了把密码处理操作的结果写回密钥存储部分50的能力。如果安全系统利用密钥阶梯(key ladder)(例如,使用密钥解密已加密的密钥,然后把所得到的解密密钥用于后续密钥阶梯级或者其可以用于解密内容的结构)并且用于解密内容的密钥本身是多个密码处理操作的最终产品,那么这可能是有用的。在此环境下,利用用来解密内容的密钥,在到达所述阶梯最后一级的情况下,使用接近规则来增强在推导密钥时将遵守的特定顺序(即,第1密钥必须接近第1级,第1级必须接近第2级等等)。应注意的是,所述接近规则的字段超过1位,以指示接近的位置的范围(例如,以5位来提供32个接近的位置)。例如,除了结果或者允许仅写入下一(即,接近)位置的操作,所述规则具有额外的位,分配该额外的位是用于定义将结果写入后续N块(即,多个接近的位置)的许可。当处理多流系统时,这样做增加了灵活性,在所述多流系统中,使用相同的阶梯来计算多个最终密钥。

图7是用于处理对密钥的读取访问请求的方法的一个实施例的逻辑图,所述方法从步骤110开始,其中,所述密钥存储仲裁模块确定对密钥的读取请求是否有效。此操作可以通过确定请求方是否被授权进行请求或者按照所述规则集来执行。在步骤112,如果确定出所述请求无效,那么所述方法继续步骤114,其中所述仲裁模块返回一个随机数。然后,所述方法继续步骤116,其中所述仲裁模块使密码处理客户端可以访问随机数。

如果请求有效,那么所述方法继续步骤118,其中所述仲裁模块把至少一部分密钥提供给密码处理客户端。例如,密钥可以存储在多个块中,并且所述仲裁模块响应于一个请求向密码处理客户端提供某些或者所有的块。所述方法继续步骤120,其中所述密码处理客户端利用至少一部分密钥对内容数据执行密码处理算法,以产生加密数据或者解密数据。应注意的是,在一个实施例中,尽管密码处理客户端可以产生多个请求并且获得部分密钥,但它通常也将使用整个密钥进行密码处理操作。

图8是用于处理对密钥的写入访问请求的方法的一个实施例的逻辑图,所述方法从步骤122开始,其中所述仲裁模块确定对密钥的写入请求是否有效。此操作可以按照现则集中的规则来执行。在步骤124,如果确定出所述请求无效,那么所述方法继续步骤126,其中,所述请求默默地失效(例如,不给出响应,忽略所述请求)或者提供错误状态。

然而,如果所述请求有效,那么所述方法继续步骤128,其中,对于至少一部分密钥,所述仲裁模块使密码处理客户端可以访问密钥存储存储器中的一块存储器。所述方法继续步骤130,其中所述密码处理客户端执行密码处理功能,以便把至少一部分密钥写入这块存储器。

图9是用于解译对密钥的请求的方法的一个实施例的逻辑图,所述方法从步骤140开始,其中所述仲裁模块根据对密钥的访问请求来识别密码处理算法的类型。例如,密码处理算法可以分组成类型类。作为一个特定的示例,第一种类型可以包括ANY、DES、DVB、C2、CSS、M6、Multi2、HDCP、Register(寄存器);第二种类型可以包括AES、3DES、ECC;第三种类型可以包括RSA;而第四种类型可以包括NONE。

在步骤142,所述方法根据密码处理算法的类型是否处于多个分类类型中的一种类型而分支。如果为否,那么所述方法继续步骤146,其中所述请求被拒绝。然而,如果所述类型处于一个种类中,那么所述方法继续步骤144,其中所述仲裁模块对应于用来访问所述密钥的分类类型来建立位界限。例如,如果算法={ANY,DES,DVB,C2,CSS,M6,Multi-2,HDCP,Register},那么可以以64位为界(on a 64 bits boundary)访问密钥存储部分;如果算法={AES,3DES,ECC},那么可以以128位为界(on a 128 bits boundary)访问密钥存储部分;如果算法={RSA},那么可以以1024位为界(on a 1024 bits boundary)访问密钥存储部分;而如果算法={NONE},那么不能以任何为界来访问密钥存储部分。

图10是一次性可编程存储器150的一个示例的图,所述一次性可编程存储器150包括OTP接口152以及与密钥存储部分50相关联的多个寄存器。在一个实施例中,OTP区域(16K位)用来记录各自被组织为64位的256块的Key(密钥)、CW和IV以及各种其它值。

存在OTP编程接口,其对应于一组寄存器,所述寄存器允许每次对于特定的OTP块读取或写入64位。对于每个块,均有2位的关联OTP存储器(即,读锁定位(Read Lock Out Bits){0,...255}以及写锁定位(Write Lock Out Bits){0....255})。这些位默认为=0(工厂默认)并且可以被编程为=1一次。一旦该位被设置为=1,那么它就再也无法被重新编程为a=0。当对应的读锁定位从a=0被设置为a=1,那么相关联的64位OTP块就无法再经由寄存器接口被读取。当对应的写锁定位从a=0被设置为a=1,那么相关联的64位OTP块就无法再经由寄存器接口被写入。

这是保护到硬件设备中的秘密值所需的重要互锁。包括几个方案:

  读锁定  写锁定  使用情况  0  0  在此情况下,一块OTP可以完全处于开锁状态,并且可以在不利用安全关键信息的情况下被现场编程或者在工厂被编程。  0  1  在此情况下,一块OTP可以被写保护,但没有读保护。此方案的典型应用是记录不用保护(即,可以被读取)但不应该被重写的MAC地址。  1  0  在此情况下,一块OTP被读保护,但能写。其典型方案是提供用于废弃系统、即允许密钥在现场被重写的机制。  1  1  在此情况下,一块OTP被读和写保护。其典型方案是在OTP内记录密钥,并且禁止在任何时候读取或者重写密钥的f/w形式。

应注意的是,即便设置了OTP块的读写锁定位,该块仍可由硬件设备内的密码处理客户端使用(即,H/W块可以使用密钥值来执行密码处理操作,但是值的本身不会被暴露)。

在步骤50把密钥从OTP初次写入密钥存储存储器期间,副本可以利用模糊函数。例如,使用包括对称二进制算符(OP[n])的函数和重映射函数(即,[j]→[i]→[j])来使将要入OTP(即,OTP[i])的64位的块(即,块[j])模糊。所述模糊函数h()可以如下来定义:

OTP[i]=HKB[x]OP[y]Block[z]

在OTP和密钥存储部分之间实施的对应的逆模糊函数h-1()使用如下的模糊函数。

KeyStore[z]=OTP[i]OP-1[y]HKB[x]

应注意的是,h()是[j]op[j]→[i]映射,而h-10是[i]op[i]->[j]映射,这意味着Block[]和HKB[]中的位序是不同的,即,如果黑客已经访问Block值和HKB值,那么所述位序往往是不对应的。

模糊密钥块可以是写入OTP的一个或多个块中的64位模式。模糊密钥块可以默认为0×0...0,并且可以相对于芯片来唯一地编程、或相对于客户唯一地编程、或相对于产品唯一地编程,或者可以默认为0×0...0。另外,模糊密钥块应该具有相似数目的0和1(+/-10%)(即,非通常值)以便确保模糊操作的安全。

所述模糊函数可用来确保安全密钥开发的密钥存储加载阶段的安全。它提供一种安全的方式来把密钥嵌入在OTP存储器中。这样做提供了一种重要的操作安全机制,所述安全机制用于确保OTP内的密码处理值的安全,并且在工厂环境下提供一定的安全保障。

图11是包括硬件部分(HW)32和软件部分(SW)34的设备的另一个实施例的示意性框图。在此实施例中,所述软件部分34包括应用程序部分40、操作系统36和特许部分42。所述应用程序部分40包括多个用户应用程序60和多个系统应用程序62。

可使用一个或多个一次性可编程存储器来实现的特许存储器部分42包括特许数据部分160和规则集部分1622。所述特许数据部分160存储具有特许性质并且不会被设备的用户或者黑客访问的数据。这种数据包括一个或多个密码处理客户端的一个或多个密钥、其它设备安全特性等等。所述特许数据部分160可以包括存储块,其中,一个或多个块存储特许数据元素。规则集部分162存储用于访问特许数据部分160的规则。

图11的设备还包括仲裁模块54,所述仲裁模块54可以是操作系统36的一部分,可以被存储在特许存储器42中,和/或可以是单独的模块(例如,独立的状态机、独立的处理器等)。无论其位置如何,所述仲裁模块都基于所述规则集来协调对特许数据部分160的访问。依照此方式,访问请求必须来自授权的固件组件(例如,真正的密码处理客户端、操作系统固件功能、其它设备安全功能等),并且所述请求必须依照如规则集中描绘的、基于请求者的身份的特定方式。如果失败(例如,未授权的请求者(例如,固件正由黑客操纵)或者无效的请求方式),那么仲裁模块54将拒绝所述请求,忽略所述请求或者响应于所述请求提供随机数据。

图12是用于访问特许存储器的方法的实施例的逻辑图,所述方法从步骤164开始,其中,仲裁模块接收对至少一部分特许数据的访问请求。所述方法继续步骤165,其中仲裁模块基于解译后的请求来访问规则集存储器以便检索所述规则集的规则。应注意的是,所述规则集的规则包括识别一个或多个有效算法的算法部分,识别有效目的地的目的地部分以及识别有效特许数据类型的内容部分。

所述方法继续步骤166,其中所述仲裁模块确定所述请求是否有效。这可以通过基于请求方和请求类型访问规则集来执行(例如,读取特许数据和/或写入特许数据)。另外,所述仲裁模块可以验证请求的格式,以便确保其包括读/写指示、至少一部分特许数据的地址以及有关特许数据使用的指示。如果这些检查中的任何一项失败,那么所述请求就是无效的,并且所述方法经由步骤168进行到步骤170,在步骤170中,所述请求失效。然而,如果所述请求有效,那么所述方法继续步骤172,其中,所述仲裁模块解译所述请求以便产生解译后的请求。将参照图15来更加详细地描述解译过程。所述方法继续步骤176,其中所述仲裁模块允许按照规则对至少一部分特许数据进行访问。

图13是用于处理访问特许存储器的读取请求的方法的实施例的逻辑图,所述方法从步骤180开始,其中,所述仲裁模块确定所述读取请求是否有效。这可以通过访问来自规则集中的适当规则来执行。所述方法根据所述请求是否有效而在步骤182分支。如果为否,则所述方法继续步骤184,其中所述仲裁模块产生一随机数。所述方法继续步骤186,其中所述仲裁模块输出所述随机数作为至少一部分特许数据。当读取请求有效时,所述方法继续步骤188,其中所述仲裁模块输出至少一部分特许数据。

图14是用于处理访问特许存储器的写入请求的方法的实施例的逻辑图,所述方法从步骤190开始,其中,所述仲裁模块确定所述写入请求是否有效。这可以通过访问来自规则集中的适当规则来执行。所述方法根据所述请求是否有效而在步骤192分支。如果为否,则在步骤194,所述请求默默地失效。当所述写入请求有效时,所述方法继续步骤196,其中对于至少一部分特许数据,所述仲裁模块使得可以访问特许存储器中一块存储器。

图15是用于解译对特许存储器访问请求的方法的实施例的逻辑图,所述方法从步骤200开始,其中所述仲裁模块根据所述请求来识别算法的类型(例如,系统级应用程序、操作系统功能、密码处理算法等)。所述方法继续步骤202,其中所述仲裁模块确定进行当前请求的算法类型是否处于所述算法类型之一的范围内。当不是时,所述方法继续步骤206,其中所述请求被拒绝。当算法的类型处于多个分类类型中的一个分类类型中时,所述方法继续步骤204,其中所述仲裁模块建立对应于所述分类类型的位界限。例如,第一类可以每次访问特许存储器的一个块,第二类可以每次访问特许存储器的x个块等等。

图16是一个或多个一次性可编程存储器210的另一个示例的图,所述一次性可编程存储器210包括特许数据部分1600、OTP接口212和多个寄存器214-216。在一个实施例中,OTP区域(16K位)用来记录各自被组织为64位的256个块的密钥(Key)、CW和IV以及各种其它值。存在OTP编程接口,其对应于一组寄存器,所述寄存器允许每次对特定的OTP块读取或写入64位。对于每个块,均有2位的关联OTP存储器(即,读锁定位{0,..255}以及写锁定位{0...255})。这些位默认为=0(工厂默认)并且可以被编程为=1一次。一旦该位被设置为=1,那么它就再也无法被重新编程为a=0。当对应的读锁定位从a=0被设置为a=1,那么相关联的64位OTP块就无法再经由寄存器接口被读取。当对应的写锁定位从a=0被设置为a=1,那么相关联的64位OTP块就无法再经由寄存器接口被写入。

进一步的实施例可以包括用于加密/解密的附加的多位字段,所述字段用于指定是否要求密码处理客户端执行加密或者解密操作(例如,ANY(任意)=00,Encrypt(加密)=10,Decrypt(解密)=01,NONE(无)=11)。最少限制状态是00(未编程状态),而最多限制状态是11(无)。另一个实施例可以包括将读和写算法字段的大小从4位增加至6位,以便指定64个不同的算法,这样做将允许添加更多的算法。

在另一个实施例中,可以使用跳跃功能,通过把一个根密钥加载到密钥存储部分中,然后根据所述根计算密钥阶梯的其它部分的密钥而不是在OTP进程的连续步骤期间将它们全部加载,来降低填充密钥存储部分所需的一次编程(OTP)的步骤的数目。以这种方式,可以免除某些OTP步骤。

在又一个实施例中,可以使用重复功能来避免冗余。例如,所述OTP块包括利用规则存储设备中某些规则存储的指示符,以指示是否将要重复该规则从而将其加载至密钥存储阶梯中的其它位置。同样,这样做免除了对密钥存储阶梯中每一位置具有OTP步骤的需要。

在进一步的实施例中,可以使用加密/解密规则。具体来讲,可以把一对位添加到每一规则,其用于表示所述客户端可以加密并且解密(00),客户端可以执行加密和解密之一(1,0)和(0,1),并且表示所述客户端可以复制、但不可以加密或者解密,密钥存储部分中另一个位置的结果。

可以如此处使用的那样,术语“基本上”和“大约”为其对应的术语和/或项目之间的相对性提供了行业接受的容限。这种行业接受的容限的范围从小于百分之一到百分之五十,并且对应但是不局限于元件值、集成电路工艺变化、温度变化、上升和下降时间和/或热噪声。这种项目之间的相对性的范围从百分之几的差别到数量级的差别。此外,可以如此处所使用的那样,术语“耦合至”和/或“耦合”包括项目之间的直接耦合和/或项目之间经由介入项目(例如,项目包括但不局限于组件、元件、电路和/或模块)的间接耦合,其中,对于间接耦合来说,介入项目不更改信号信息,但是可以调整其电流电平、电压电平和/或功率电平。进一步讲,可以如此处所使用的那样,推论出的耦合(即,一个元件通过推断耦合至另一个元件)包括两个项目之间的直接和间接耦合,方式与“耦合至”相同。更进一步讲,可以如此处所使用的那样,术语“可操作用于”指示一项目包括电源连接、输入、输出等的一个或多个,当被激活时,用于执行一个或多个其对应的功能,并且还可以包括与一个或多个其他项目的推论出的耦合。再进一步讲,可以如此处所使用的那样,术语“关联于”包括独立项目的直接和/或间接耦合,和/或一个项目嵌入在另一个项目内。正如此处所使用的那样,术语“有利地比较”指示两个或更多项目、信号等之间的比较,提供所期望的关系。例如,当所期望的关系是信号1具有比信号2更大的幅度时,那么当信号1的幅度大于信号2的幅度或者当信号2的幅度小于信号1的幅度时,可以实现有利地比较。

以上已经借助用于示出执行特定功能及其关系的方法步骤描述了本发明。此处,为便于描述,已经对这些功能构建块和方法步骤的界限和序列进行了刻意地限定。只要适当地执行所指定的功能和关系,就可以定义替代界限和序列。由此,任何这种替代的界限或者序列均在已请求保护的发明的范围和精神之内。

以上已经借助功能构建块描述了本发明,所述功能构建块用于示出了某些重要功能的执行。为便于描述,已经将这些功能构建块的界限进行了刻意地限定。可以定义替代的界限,只要适当地执行某些重要的功能即可。类似地,此处已经刻意地限定了流程图中的方框,以便示出某些重要的功能。对于使用而言,流程图方框的界限和序列能够另外限定,并且仍执行某些重要的功能。由此,功能构建框和流程图方框两者的这种替代限定均在请求保护的发明的范围和精神之内。本领域普通技术人员还将意识到的是,此处,功能构建块以及其他示例性块、模块和组件可以如所示出的那样来实施,或者通过分立的组件、专用集成电路、执行适当软件的处理器等或其任意组合来实现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号