生成密钥的装置和方法

文档序号:7629944阅读:122来源:国知局
专利名称:生成密钥的装置和方法
技术领域
本发明涉及密钥,尤其涉及用于生成密钥的装置和方法。
背景技术
在计算机系统中,使用密钥来控制对代码或数据的访问。这些密钥通常需要通过一些介质传递,这就会导致密钥被截取。在安全系统中,使用根密钥来建立信用主干,在此基础上可以生成各种密钥和其他的安全机制。生成和存储根密钥所使用的机制易受软件和网络的影响,并且知情人的攻击会在该系统生产、发行和使用期间危及根密钥的安全。
通常将安全系统内的密钥存储在非易失性存储器中,例如熔断/非熔断、EEPROM、闪存、ROM、铁-RAM、磁致电阻RAM以及电池支持存储器。尽管如此,这些实现需要人类和机器与生成和编程密钥或根密钥的目标设备发生交互。该过程就不可避免地把密钥暴露给一个或多个机器、传送工具以及人类。这就为密钥的记录和/或盗取创造了诸多机会。此外,这些将密钥存储在系统中某个位置的历史实现是可由主机操作系统或其端口访问的,这就在所述计算系统交付使用后为盗用创造了更多的机会。
现有技术为在硅内实现的电路创建标识符,而非号码的历史生成或是非易失性元件的相关编程。被称为硅标识符的这项技术利用任意晶体管阈值电压(Vt)的随机性并协同比较器,无需编程步骤就在所述硅上生成标识符比特。所述标识符比特形成的标识(ID)数据字是硅晶体管的阈值电压固有随机性的函数。比较器比较Vt和阈值电压,并响应于比较结果生成0或者1。所述0或者1成为所述数据字内的一位。
该技术的局限在于晶体管的Vt值非常接近阈值电压,这就导致了比较值随着时间、温度、电压和噪声水平变化。这样就因为环境条件,这些晶体管就会有些时候生成1而有些时候生成0。然而,硅ID依然是“统计上唯一的”,这意味着可以确定使用中的ID能够对应工厂中实现ID的概率很高。
对于安全密钥来说,保持密钥比特不随时间变化是十分重要的。如果使用硅ID技术生成密钥,就需要能够实现随时间稳定ID的方法。

发明内容
本发明提供一种装置,该装置包括用于生成具有阈值电压比特表示的根密钥的电路,以及用于校正根密钥比特差错以生成校正的根密钥的差错校正模块。
本发明还包括一种生成用于电子设备的根密钥的方法。该方法包括响应于晶体管阈值电压生成多个逻辑1和0,并且差错校正所述多个逻辑1和0以生成校正的根密钥。
在另一方面,本发明提供一种数据存储系统,该系统包括存储介质以及含有加密和安全模块用于加密和解码将被存储在所述存储介质内并且从中检索数据的控制器,其中加密和安全模块包括用于生成具有阈值电压比特表示的根密钥的电路以及用于校正根密钥比特差错以生成校正的根密钥的差错校正模块。


图1是根据本发明构造的密钥生成装置的框图。
图2是根据本发明构造的数据存储系统的框图。
图3是根据本发明的包括在数据存储系统内光驱头光盘组装体的示意图。
具体实施例方式
本发明提供一种装置和方法,用于生成和使用可包含在定义电子模块内的密钥。所述密钥可在装置中使用使得该密钥在此电子模块外绝不可见。
所述生成密钥的方法通过结合纠错码(ECC)电路生成不随时间改变的密钥而改进了统计上唯一的硅标识符技术。图1是根据本发明构造的密钥生成装置10的框图。图1中的装置包括生成数据字的多个比特用作根密钥的电路12。根据已知的用于生成硅ID的技术,电路12可以包括多个晶体管和比较器。硅ID技术提供了良好的随机数,但是某些比特会随时间发生改变。因为所述根密钥绝不能随时间改变,所以就添加了纠错码(ECC)。这样就只有很小一部分比特会随时间变化,所以普通的纠错码就是有效的。硅ID电路使用现有技术生成多个比特。
硅ID电路生成经由总线14递送给纠错模块16的比特阵列。在总线14上递送的比特形成未修正的根密钥。纠错模块包括用于存储纠错码/验错码(ECC/EDC)值的寄存器18以及用于检测在硅ID数据字内纠错的纠错和验错逻辑20。所述ECC/EDC值包括两个值,第一个是ECC或者纠错码值而第二个是EDC或者验错码值。校正的根密钥可从总线22上读出而计算的ECC/EDC值可从总线24上读出。可经由写/读控制总线30访问控制和状态寄存器28。
一旦图1中任何密钥装置上电,那么所述密钥装置就不允许在总线22上读取校正的根密钥。在第一次使用该装置时,通过总线30和控制寄存器28命令所述装置为了多个硅ID比特计算ECC/EDC校正值。计算的ECC/EDC值从总线24中读出并存储在非易失性存储器中方便所有后续上电事件的使用。在后续上电事件中,所述装置将加载经由总线26载入寄存器器18的ECC/EDC校正值。一旦载入了寄存器器18,那么该装置将使用校正值的EDC部分来确定硅ID值中是否存在差错。如果存在差错,那么所述装置将使用校正值的ECC部分来校正原始的硅ID值。合成的校正密钥值将被存储在校正模块16的寄存器中并且可经由总线22读取。如果在原始硅标识符内不存在差错,那么原始密钥将被存储在校正模块16的寄存器内并且可通过读取总线22访问。在初始化所述密钥值之后,可启用总线22用以读取该密钥。所述装置的状态将保持在其初始状态直到下电事件发生。
图1的电路可作为ASIC器件中子组块而得以实现,并且当用于光驱时,可被定义安全电子模块环绕。可在硬件中使用门阵列实现纠错和验错。
硅标识符组块不要求编程并且在所述硅设备生产之后就出现随机的、秘密的并且统计上唯一的标识符。使用ECC电路生成ECC值,用于在设备的使用寿命期间校正标识符(ID)的不稳定性。纠错码可以随着差错固有统计量以及强度的变化而变化。例如可使用Reed-Solomon类型编码。
Reed-Solomon纠错是一种通过首先从数据比特中构造多项式进行工作的编码方案。由于多项式数据中包含的冗余信息就可重建原始多项式,这样即使数据比特存在差错就也可将差错降到特定程度。
Reed Solomon码是线性分组码。Reed-Solomon码是指定作为s位符号的RS(n,k)。这就意味着编码器每s位抽取k个数据符号并且添加奇偶符号以生成n位符号码字。每s位都具有n-k奇偶符号。Reed-Solomon解码器可以校正至包括了码字内差错的t位符号,其中2t=n-k。
此外,纠错码具有检测差错存在(验错码或者EDC)的能力。使用验错确定密钥是否被破坏。在一个实例中,纠错模块构造一个作为消息的函数的值(称之为检验和)。随后验错器可以使用同一函数来计算接收到密钥的检验和并且将其与所附检验和相比以确定该密钥是否被正确的接收。
可使用硅ID技术实现用作光驱内根密钥的唯一并秘密的标识符。图2是使用根密钥的数据存储系统的控制器实例框图。加密和安全模块40包括对称加密模块(或者密码组块)42、散列模块44、缓冲器访问单元/直接存储器存取(DMA)46、微处理器接口48、非对称加密加速模块(RSA)50、根密钥52、密钥存储装置54、随机数发生器(RNG)56、自检硬件58以及用于接收并截取来自驱动固件命令的命令控制器60。可选的命令指针模块62可提供用于在缓冲器存储器内存储可选命令和结果队列的指针。
使用对称密码组块42提供数据的对称加密。在一个实例中,对称加密模块可以包括高级加密标准(AES)以及三倍数据加密标准(TDES)算法。提供散列模块44用于数据的散列。可使用SHA-1算法实现所述散列模块。非对称加密加速模块50可以使用,例如1024和2048比特Rivest、Shamir、Adleman(RSA)算法。
系统微处理器接口48提供加密和安全模块与系统微处理器之间的连接。使用该连接传送命令至所述加密和安全模块并从中检索状态。在一个实施例中,该连接是并行的地址和数据总线,但是也可用串行端口连接来实现。所述系统微处理器接口还包括直接连在系统微处理器中断控制器的硬件中断信号线。所述中断可用于通知系统微处理器命令的完成以及缓冲器内可用的结果。
如图2所示,加密和安全模块连接至DRAM控制器64以及驱动微处理器66。加密和安全模块包括内部命令总线68、用于与内部子电路通信的数据总线70以及用于链接加密操作的组块流水线总线72。缓冲器访问单元和微处理器接口电路处理数据流使之符合分别连接的总线的协议。
单调增加计数器电路74提供了相对时间的安全知识。加密的优秀随机数发生器56提供了在技术上不可能被预测的随机数。密钥存储装置54可以是用于存储临时密钥的易失性存储器。
提供命令控制器60用于接收和解码接收自系统微处理器的命令,还用于给子电路分派任务。所示命令控制器对解码命令、设置用于期望操作的微处理器子组块以及数据流负主要责任。命令控制器还可排序请求执行RSA计算的操作。所示命令控制器对解码命令、设置用于期望操作的微处理器子组块以及数据流负主要责任。并且还期望命令控制器对还请求执行RSA计算的操作进行排序。
为了保持对加密和安全模块访问的完整性,就需要所述加密和安全模块除了上述定义的命令接口之外不具备其他的可选访问方式。这将确保攻击者不能使用排错或制造路径对所述模块进行恶意访问。因为这些限制,所述模块可以包括内部自检单元。
能够使用该自检单元来检验模块的校正功能并防止对加密和安全模块的“后门”访问。可以在驱动器的芯片正常工作期间调用所述自检模块用以检验加密和安全模块的持续校正功能。自检硬件58自主地确保加密和安全电路的校正功能。
所述加密和安全模块通过缓冲器访问和仲裁单元64而耦合至光盘单元76。缓冲器存储器78存储被指定为源数据、结果数据、命令队列和结果队列的各种信息。缓冲器管理器提供缓冲器访问和仲裁。主机单元80与缓冲器管理器交互。驱动微处理器66耦合至主机单元、缓冲器管理器、光盘单元以及加密和安全模块。
随机数发生器(RNG)56提供优良的加密随机数,这就意味着预测给定数字在技术上是不可行的。除了随机数的生成,该组块还与系统微处理器协同工作用以提供随机质量监控器并且还能生成可在RSA密钥对生成中使用的随机素数。
随机数发生器可以提供用于根密钥52的随机数、位于密码组块内并将被分配给其他密码子组块的随机数、用于系统微处理器的随机数以及存储在缓冲器存储器并可能在位于光盘上的随机数流。
还可如图1所示提供纠错用以说明根密钥内可能的差错。可经由寄存器接口命令所述ECC组块来计算用于密钥的ECC校正值。随后将该校正值返回给上级系统并存储在某些非易失性存储器中。该校正值是施加到未修正的密钥上以获取校正密钥的值。
在光驱的实例中,所述ECC校正值可以返还给系统微处理器并且存储在非易失性光驱介质和/或位于所述光驱电路板上的其他非易失性存储元件。在每个密钥的后续初始化时,所述密钥将预设至禁用状态并且关于该密钥的操作也被禁止直到初始化该密钥。在每次初始化的时候,所述ECC模块将载入ECC校正值并且对所述硅标识符的每次使用都需调用所述ECC校正值。一旦确定有差错,那么ECC模块将执行校正并将校正的密钥提供给它的输出,用于相关电子模块内的安全和加密元件的使用。
当在光驱中使用时,密钥仅可在加密和安全电子模块中访问。所述加密和安全模块包括利用所述密钥进行加密和安全操作的加密和安全元件。在图2中描绘的实施例中,所述安全模块除了根密钥之外,还包括单调计数器、对称密码、散列以及RSA电子模块。
图2的加密和安全模块可作为包括有定义良好的安全电子模块的专用集成电路(ASIC)得以实现,其中所述安全电子模块包括用于在所述模块内执行安全操作的根密钥。在安全计算系统中,因为所述根密钥对于主机操作系统以及与所述主机系统相关联的端口而言是不可见的,所以在光驱上的根密钥就创建了一个更为安全的信用安全根。此外,将根密钥限制在光驱内的受控电子组块中就可提供确保该光驱以及端口免受攻击的附加安全保障。当以秘密的方式识别该根密钥时,因为盗用密钥的困难程度呈指数增加使得该密钥在安全光驱的生产、递送和使用过程中绝不会被盗用访问,所以该系统将变得更为安全。当密钥对其值进行随机加密时,因为技术上是无法猜出任何给定密钥的值,所以该密钥就提供更高级别的安全保障。
图3是根据本发明的包括在数据存储系统内光驱110(通常称为头光盘组装体)的机械部分示意图。所述光驱包括可配置包含光驱各种组件的外壳112(图中移除了所述外壳的上部并且其下部可见)。在此磁盘驱动的情况下,光驱包括用于旋转外壳内至少一个数据存储介质116的轴电动机114。外壳112内至少包括一个臂118,其中每个臂118都具有带有记录和/或读取头或者滑动触头122的第一端120以及通过轴承126枢轴安装在轴状物上的第二端124。传动电动机128位于臂的第二端124,用于转动臂118以将头122放置在盘116的期望扇区上。传动电动机128由图中未示出的控制器管理。完整的光驱包括图4的头光盘组装体以及图2的控制器电路。
本发明在加密和安全模块中生成密钥以确保该密钥在该模块外绝不可见,因此也是绝不会被盗取的。一旦被识别,就可在光驱系统内秘密地使用该加密的随机信用安全根用于支持提供了安全光驱和安全计算系统的附加安全功能。这些功能包括但不限于光驱和计算机系统的安全引导、密钥和初始值的安全引导、时间动力循环的安全计算以及其他的安全功能。每个数据存储系统都具有永久存储在系统内的唯一标识符或者密钥。
除了公开的实例,应该认识到在要求生成密钥或者其他稳定数据字的多种电子设备和系统中都利用本发明生成密钥的方法和电子设备。本发明方便了密钥和数据字的生成,而无需编程密钥发生器。
虽然本发明是参考若干实例描绘的,但是本领域普通技术人员显而易见的是,可以在不背离所附权利要求阐述范围的情况下对公开的实例做出修改。
权利要求
1.一种电子设备,包括用于生成具有阈值电压比特表示的根密钥的电路;以及用于校正根密钥比特中的差错以生成校正的根密钥的纠错模块。
2.如权利要求1所述的电子设备,其特征在于,用于生成根密钥的电路包括硅标识符电路。
3.如权利要求2所述的电子设备,其特征在于,所述阈值电压是晶体管阈值电压。
4.如权利要求1所述的电子设备,其特征在于,所述纠错模块包括纠错和验错电路。
5.如权利要求1所述的电子设备,其特征在于,所述纠错模块包括门阵列。
6.如权利要求1所述的电子设备,其特征在于,所述纠错模块应用了分组纠错码。
7.如权利要求6所述的电子设备,其特征在于,所述纠错码包括Reed Solomon码。
8.一种生成用于电子设备的根密钥的方法,该方法包括响应于阈值电压生成多个逻辑1和0;以及纠错所述多个逻辑1和0以生成校正的根密钥。
9.如权利要求8所述的方法,其特征在于,所述多个逻辑1和0包括硅标识符。
10.如权利要求9所述的方法,其特征在于,所述阈值电压是晶体管阈值电压。
11.如权利要求8所述的方法,其特征在于,所述纠错步骤将分组纠错码应用于所述多个逻辑1和0。
12.如权利要求11所述的方法,其特征在于,所述分组纠错码包括ReedSolomon码。
13.如权利要求8所述的方法,其特征在于,还包括在纠错一系列逻辑1和0之前检测所述多个逻辑1和0中的差错用以生成校正的根密钥。
14.如权利要求13所述的方法,其特征在于,所述检测差错的步骤将多个逻辑1和0内的检验和与生成的检验和相比较。
15.一种数据存储系统,包括存储介质;包括加密和安全模块用于加密和解密将被存入所述存储介质并且从中检索的数据的控制器,其中所述加密和安全模块包括用于生成具有阈值电压的比特表示的根密钥的电路;以及用于校正根密钥比特中的差错的纠错模块。
16.如权利要求15所述的数据存储系统,其特征在于,所述阈值电压是晶体管阈值电压。
17.如权利要求15所述的数据存储系统,其特征在于,还包括用于生成由所述根密钥导出的多个密钥的电路;以及使用所述导出的密钥加密和解密数据的加密和解密单元。
18.如权利要求15所述的数据存储系统,其特征在于,所述纠错模块包括门阵列。
19.如权利要求15所述的数据存储系统,其特征在于,所述纠错模块应用了分组纠错码。
20.如权利要求19所述的数据存储系统,其特征在于,所述纠错码包括ReedSolomon码。
全文摘要
一种装置包括用于生成具有阈值电压比特表示的根密钥的电路以及用于校正根密钥比特差错以生成校正的根密钥的差错校正模块。同时还描述了一种生成根密钥的方法以及包括该根密钥的数据存储系统。
文档编号H04L9/08GK1794628SQ20051013617
公开日2006年6月28日 申请日期2005年12月22日 优先权日2004年12月22日
发明者M·A·佛翰德, J·D·特兰萨姆, L·哈斯, C·W·蒂斯菲尔德 申请人:西加特技术有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1