内嵌实时时钟的安全芯片以及校准其实时时钟方法

文档序号:6540480阅读:316来源:国知局
专利名称:内嵌实时时钟的安全芯片以及校准其实时时钟方法
技术领域
本发明涉及计算机安全技术领域,属于对安全芯片体系结构进行扩展的安全技术。特别是涉及在安全芯片中内嵌实时时钟以及对安全时钟进行校准的方法。
背景技术
1999年,在由Intel、IBM、HP、Microsoft、Compaq发起的TCPA(TrustedComputing Platform Alliance)组织的推动下构建了一个可信赖的计算环境。这个组织定义了一个平台设备认证的架构,以及嵌入在主板上的安全芯片(TPMTrusted Platform Module)和上层软件中间件TSS(TrustedSoftware Stack)的规范。2003年TCPA组织重组为TCG(Trusted ComputingGroup),对TPM和TSS进行完善补充。
图1是表示现有技术的TCG安全芯片的体系结构的方框图。如图1所示,TCG的安全芯片包括微控制器(MCU)处理器111,输入/输出(I/O)接口112,散列消息鉴别码(HMAC(Hash Message Authentication Code))引擎113,密钥生成单元114,安全散列算法(SHA1(Security HashArithmetic))引擎115,随机数发生器116,电源检测单元117,存储单元118,存储单元119,RSA(注释RSA以三个发明人的姓名头字母命名)协处理器120,以及可选部件(图中未示出)。
下面说明现有技术的TCG安全芯片各个部分的功能。MCU处理器111用于执行外部设备提供给安全芯片的指令。I/O接口112通过外部接口接收外部设备提供给安全芯片的指令,和向外部发送安全芯片执行相应指令的结果。HMAC引擎113用于执行HMAC运算。密钥生成单元114生成RSA、对称算法所需的密钥。SHA1引擎115用于执行SHA运算。随机数发生器116用于产生随机数以便生成随机密钥。电源检测单元117检测提供给安全芯片的电源。存储单元118是非易失性存储器,用于保存密钥数据、用户数据和执行各种操作所需的程序。存储单元119是易失性存储器,用于保存临时数据和程序。RSA协处理器120执行RSA运算(RSA是美国RSA实验室研究的加密算法)。可选部件用于管理当前安全芯片的状态。
目前,TCG组织规定的安全芯片的主要功能包括在计算机启动过程中对基本输入/输出系统(BIOSBasic Input/Output System)的完整性进行验证,对硬件设备的完整性进行验证,对操作系统的完整性进行验证。在操作系统运行后,安全芯片负责对受保护的应用软件的完整性进行监视验证;生成并管理系统中的各种密钥;并可以提供数字签名。
通常,在认证系统中,数字时间戳与数字签名一样都是防止电子交易、电子文书被伪造或篡改的防护措施。其中数字时间戳可以有效地防止抵赖。目前,安全芯片利用一个单调计数器来实现类似功能。该单调计数器的主要功能如下在安全芯片生产时,为计数器设定一个初始值,当安全芯片运行时,每隔一段时间使计数器自动增加一个固定值,当安全芯片停止工作时,该计数器保持现有数值不变。这样,当需要提供时间戳时,就读取该计数器当前的数值作为当前的时间。
然而,由于计数器本身的特性,采用计数器的方式存在如下缺陷1)计数器存在着溢出的问题,当计数器计满而发生溢出复位时,必然会重复提供数值,这样就无法区别两次数字签名的时间差异,由此出现两份相同的文档;2)在计数器增加固定值的这段时间内,如果有两个签名需要加盖时间戳,那么提供的将是同一数值,从而出现两份相同的文档;3)由于安全芯片关闭和下次启动时计数器的数值相同,而如果此时要求加盖时间戳,也将提供同一数值,从而出现两份相同文档。

发明内容
鉴于采用计数器的安全芯片存在的上述问题,本发明的一个目的是提供一种具有内部实时时钟的安全芯片,用内部实时时钟来取代计数器,从而为数字签名提供真正意义上的时间值,填补计数器本身的特性而造成的设计缺陷。
本发明的另一个目的是提供一种对安全芯片的实时时钟进行修正的方法,以校正安全芯片内部的实时时钟的误差,从而为数字签名提供真正意义上的时间值,填补计数器本身的特性而造成的设计缺陷。
根据本发明的一个方面,提供一种内嵌实时时钟的安全芯片,包括实时时钟装置,用于为数据文件提供安全芯片的当前时间值作为时间戳标记;外部频率发生器,用于为所述实时时钟装置提供基准时钟频率;时钟校准装置,用于校正所述实时时钟装置的误差,以便实现时钟同步;加密装置,用于根据加密算法产生密钥,以实现对安全芯片读写的安全保护和认证;和微控制器(MCU),用于为芯片操作系统提供操作支持和管理。
根据本发明的另一个方面,提供一种对安全芯片的实时时钟进行修正的方法,包括步骤从外部时间服务器获取第一时间信息,并保存在安全芯片的时钟校准装置中的时间服务器校验寄存器中;获取安全芯片的实时时钟的第二时间信息,并保存在安全芯片的时钟校准装置中的实时时钟校验寄存器中;判断外部时间服务器的累计时间值与安全芯片中的实时时钟的累计时间值之间的误差值是否超过预定的阈值;如果所述误差值超过了预定的阈值,则对安全芯片的实时时钟进行校准。
根据本发明的再一个方面,提供一种读取内嵌实时时钟的安全芯片的时间信息,以便添加时间信息的方法,包括步骤接收发送给安全芯片的指令,并对所接收的指令进行解析;根据所述被解析的指令判断是否需要向运行结果添加时间信息;如果需要,则读取安全芯片的实时时钟装置内部的时间寄存器,获得当前的时间信息;在运行结果的相应位置添加所获得的相应的时间信息,并将运行结果返回;和如果判断运行结果不需要添加时间信息,该直接返回运行结果。
本发明在原有安全芯片中设置内部实时时钟,并在安全芯片外部为实时时钟提供外部时钟频率,确保时间精度,同时采用授权控制、时钟同步等方法对实时时钟进行校正。
根据本发明的内嵌实时时钟的安全芯片不但利用数据完整性和数据签名技术,实现了从基于安全芯片的计算机主板到系统底层固件以及操作系统的信赖机制,而且在安全芯片内部嵌入了实时时钟,不但为数据签名提供了不可抵赖的时间戳,而且可以将时间信息用于各种与时间相关的安全服务,如软件版权、接入/拒绝服务等,从而使安全芯片的功能更加完善。


通过阅读和理解下面参考附图对本发明优选实施例所做的详细描述,将使本发明的这些和其它目的、特征、和优点变得显而易见。其中图1是表示现有技术的安全芯片的结构方框图;图2是表示根据本发明一个实施例的内嵌实时时钟的安全芯片的内部模块的结构方框图;图3是表示根据本发明实施例的内嵌实时时钟的安全芯片与计算机主板连接的示意方框图;图4是表示根据本发明实施例的内嵌实时时钟的安全芯片的时钟校准部分的方框图;图5是表示根据本发明实施例为内嵌实时时钟的安全芯片读取时钟信息的处理方法的流程图;和图6是表示根据本发明实施例为内嵌实时时钟的安全芯片修正实时时钟误差的处理方法的流程。
具体实施例方式
下面参照附图对本发明的实施例进行详细的说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。
图2示出了根据本发明的内嵌实时时钟的安全芯片的一个实施例。如图2所示,根据本发明的内嵌实时时钟的安全芯片包括实时时钟模块21,外部频率发生器22,时钟校准模块23,加密模块24,电源检测模块25;中央处理单元(CPU)核26(即,MCU),存储部件27,和对外接口模块28。实时时钟模块21为数字签名提供精确的当前时间值。外部频率发生器22为实时时钟模块21提供基准时钟频率。时钟校准模块23用于校正实时时钟模块21的误差,以便实现时钟同步。加密模块24基于公开密钥算法的数据签名算法,对称加密密码算法,实现对安全芯片读写的安全保护机制和认证机制,密钥的产生机制。CPU核(MCU)26为芯片操作系统提供操作支持,其中的固件执行运算和管理功能。存储部件27可以用来存储唯一的身份标识和身份认证,固件的完整性验证码,以及其他秘密信息。上述数据在每一个终端的生产时或在安全环境下,写入到安全芯片的存储部件中。电源检测单元25检测提供给安全芯片的电源。对外接口模块28主要用于接收外部设备传送的指令,和向外部返回指令运行的结果,并与外部相连。如图2所示,上述模块通过内部总线连接。
在图2中,加密模块24由SHA/HMAC运算单元241,RSA运算单元242,密钥生成单元243,和随机数发生器244构成。SHA/HMAC运算单元214包括SHA和HMAC引擎,用于执行SHA和HMAC运算。RSA运算单元242用于执行RSA运算。密钥生成单元243生成RSA、对称算法所需的密钥。随机数发生器244产生随机数以便产生随机密钥。存储部件27由易失性存储器271和非易失性存储器272组成。易失性存储器271主要用于运行固件必要的程序和保存临时数据。非易失性存储器272主要用于保存固件程序和各种密钥以及其他秘密信息。对外接口模块28由I/O接口281和外部接口282构成。I/O接口281口主要用于接收从外部传送的指令,并返回指令运行的结果。外部接口282用于与外部设备进行连接。电源检测模块25用于检测当前工作电压是否在规定范围之内,如果不在规定范围之内,则向MCU发送复位信号。MCU 26主要用于控制和调度各功能模块。
下面描述根据本发明实施例的内嵌实时时钟的安全芯片的操作。在本实施例,安全芯片的实时时钟模块21内部设置多个寄存器(图中未示出),作为用于寄存相应的年、月、日、时、分、秒、毫秒等的时间寄存器。在安全芯片生产时根据生产时间设定相应时间。实时时钟模块21根据外部频率发生器22提供的基准频率,产生满足需要的固定时钟频率。上述时间寄存器根据此频率进行相应的变化以反映当前的时间。作为例子,外部频率发生器22可以采用晶体振荡器,然而,本发明不限于此,也可采用其它设备作为外部频率发生器。当MCU 26中运行的固件判断运行的数字签名命令需要加盖时间戳时,固件通过芯片内的地址总线传送实时时钟模块21的时间寄存器地址,同时通过芯片内的数据总线传送读指令。在规定的读取周期后,实时时钟模块21将时间寄存器的时间值发送到芯片内的数据总线上提供给固件。固件在需要加盖时间戳的文件摘要中添加日期、时间信息。然后,完成对文件的数字签名。
图3是内嵌实时时钟的安全芯片与计算机主板的连接示意图。安全芯片内部的各模块通过内部总线相连接,通过接口与外部设备进行通信,并且外部设备通过例如晶体振荡器或固定频率发生器为实时时钟模块21提供基准频率。
下面描述内嵌实时时钟的安全芯片与计算机主板的连接。如图3所示,CPU 301与主板上的北桥302相连,北桥302与南桥303和静态存储器(SRAM)304分别直接相连。南桥303分别与超级输入输出接口(SuperI/O)305、BIOS模块306和安全芯片307通过例如LPC(Low PinCount Bus)总线直接相连。应该指出,安全芯片307与主板的连接不限于LPC总线的方式,而是可以采用其它连接总线。例如,安全芯片通过PCI(Peripheral Component Interface)总线与主板系统进行连接;安全芯片通过USB(Universal Serial Bus)总线与主板系统进行连接;安全芯片通过1394串口总线与主板系统进行连接;安全芯片通过GPIO(GeneralPurpose Input and Output)接口与主板系统进行连接等。
在个人计算机(PC)的启动过程中对BIOS、底层固件、操作系统依次进行完整性验证,从而保证信息处理设备的安全启动,同时记录BIOS或时间服务器提供的时间,以及安全芯片实时时钟的时间。此后,利用安全芯片内置的加密模块生成并管理系统中各种密钥,对应用模块进行加密和解密,以保证计算机等信息设备中应用模块的安全。在PC机的使用过程中,以及关闭时,记录BIOS或时间服务器提供的时间,以及安全芯片的实时时钟的时间,从而根据两者之间的误差关系,校正安全芯片内部的实时时钟的误差。
通常,晶体振荡器的时间间隔的漂移较小,单位时间的误差较稳定,但存在较大的累计误差,因此需要对安全芯片的实时时钟进行校正。
对于单机系统而言,作为实例,可以采用以下的校正方法。首先,在安全芯片中设置一个超级用户模式(Super mode),进入超级用户模式需要一个与背书密钥(EKEndorsement Key)绑定的密钥。在进入超级用户模式后,用户直接设置相应的时间数值。该方法可以将误差控制在数秒钟之内,对于不允许联网的单机系统而言是可以容忍的。
然而,对于联网或组网的网络用户而言,上述校正方式中多达数秒钟的误差是不允许的。这种情况下,可以考虑如下方式进行校正。首先,在网络中设置一个时间服务器,网络上的其他主机系统的时钟以该时间服务器的时钟为准。在启动安全芯片之后向时间服务器发送一条指令,以获取时间服务器上的时间。安全芯片将获得的时间服务器的时间保存在时间校准模块23的时间服务器校验寄存器A1中。同时,安全芯片将实时时钟模块21的当前时间保存在校准模块23的实时时钟校验寄存器B1中。安全芯片在关闭之前向时间服务器发送一条指令,以获得时间服务器上的时间。安全芯片将获得的时间服务器时间保存在时钟校准模块的时间服务器校验寄存器A2中。
同时,安全芯片将实时时钟模块的当前时间保存在时钟校准模块的实时时钟校验寄存器B2中。此后,计算时钟校准模块的时间服务器校验计数器A2与A1之间的时间差,并将计算结果保存在时钟校准模块时间服务器累计寄存器C1中。
另外,计算时钟校准模块23的实时时钟校验寄存器B2与B1之间的时间差,并将计算结果保存在时钟校准模块实时时钟累计寄存器D1中。根据一组或多组C寄存器与D寄存器的时间差值,统计出晶体振荡器的累计误差。然后,根据晶体振荡器的累计误差情况修正实时时钟的当前时间值,使之与网络时间服务器的时间保持同步。
图4是表示图2所示的内嵌实时时钟的安全芯片的时钟校准部分的内部方框图。时钟校准模块23内部由2n个时间服务器校验寄存器组A1,A2,...,A2n-1,A2n、n个时间服务器累计寄存器组C1,C2,...,Cn、2n个实时时钟校验寄存器组B1,B2,...,B2n-1,B2n、n个实时时钟累计寄存器组D1,D2,...,Dn,以及修正算法处理子模块41和修正结果寄存器42构成,其中n是自然数。时间服务器校验寄存器A1,A2,...,A2n-1,A2n用于记录外部时间服务器的时间,时间服务器累计寄存器C1,C2,...,Cn分别根据所对应的两个时间服务器校验寄存器,例如,A1,A2或A2n-1,A2n中寄存的外部时间服务器的时间来记录两次读取外部时间服务器的间隔。
实时时钟校验寄存器B1,B2,...,B2n-1,B2n用于记录安全芯片的内部实时时钟的时间,实时时钟累计寄存器D1,D2,...,Dn分别根据所对应的两个实时时钟校验寄存器,例如,B1,B2或B2n-1,B2n中寄存的安全芯片中的内部时间来记录两次读取内部实时时钟的间隔。校准算法处理模块41根据时间服务器累计寄存器C1,C2,...,Cn的数值来判断外部时间服务器的时间是否被恶意篡改(例如,将系统的当前时间修改数天数小时),从而决定时间服务器累计寄存器C1,C2,...,Cn中的数值是否可用,并计算时间服务器累计寄存器C1,C2,...,Cn中的数值与实时时钟累计寄存器D1,D2,...,Dn中的数值之间的差值。然后,按照统计学原理,依据时间服务器累计寄存器C1,C2,...,Cn和实时时钟累计寄存器D1,D2,...,Dn两者之间的误差值。判断当前的晶体振荡器的累积误差是否超过限度,例如,预定的阈值。如果超过限度,则予以修正,并将修正值记录在修正结果寄存器42中,以便实时时钟子模块据此值修改当前时间。
下面参考图5说明在需要安全芯片为数字签名提供真正意义上的时间值时,读取内嵌实时时钟的安全芯片的时间信息的处理过程。首先,在步骤S501,MCU 26接收发送给安全芯片的指令。然后,在步骤S502中对所接收的指令进行解析。此后,根据解析的指令在步骤S503中调用相应的模块运行该指令。在步骤S504中,根据该指令要求判断运行结果是否需要添加时间信息。如果需要,处理过程执行步骤S505,在步骤S505中读取实时时钟模块21内部的时间寄存器,获得当前的时间信息,并在步骤S506中在运行结果的相应位置添加所获得的相应的时间信息。然后,在步骤S507中将运行结果返回。如果在步骤S504判断运行结果不需要添加时间信息,该处理过程则直接转到步骤S507,返回运行结果。
如前所述,虽然晶体振荡器时间间隔的漂移较小,单位时间的误差较稳定,但其累计误差较大,因此需要对安全芯片的实时时钟进行校正,以确保安全芯片能够提供准确的时间值。
图6是描述对内嵌实时时钟的安全芯片的时钟信息进行修正的过程的流程图。下面参考图6描述对内嵌实时时钟的安全芯片的时钟信息的修正处理。
首先,在步骤S601中,启动安全芯片,准备发送和接收指令。然后,在步骤S602,安全芯片发送读取时间服务器的指令,以便从时间服务器获得时间信息来校准内嵌于安全芯片中的实时时钟。接下来,在步骤S603,安全芯片接收从时间服务器传送过来的时间服务器的第一时间信息。在步骤S604,安全芯片将时间服务器的时间值保存到设置在时钟校准模块23中的时间服务器校验寄存器A1中。此后,在步骤S605,安全芯片发送指令以读取其自身的实时时钟单元的第二时间信息。然后,在步骤S606中,安全芯片将实时时钟的时间值保存到时钟校准模块23的实时时钟校验寄存器B1中。接下来,在步骤S607中,安全芯片判断时间服务器累计校验寄存器C1和实时时钟累计寄存器D1之间的误差是否超过预定范围,如果安全芯片的时间误差超过了范围,处理过程则进行到步骤S608,安全芯片调用修正算法模块,根据误差值计算修正的时间值的大小。参见图4,C1是A1与A2的差值,D1是B1与B2的差值。然后,在步骤S609,安全芯片将修正值保存在修正结果寄存器中,并且在步骤S610中,安全芯片正常运行。如果在步骤S607判断时间服务器累计校验寄存器C1和实时时钟累计寄存器D1之间的误差未超过预定范围,处理过程则转到步骤S610,使安全芯片正常运行。
接下来,在步骤S611中,安全芯片判断修正结果寄存器是否为空,如果不为空,处理过程则进行到步骤612。在步骤S612中,安全芯片根据修正结果寄存器的数值对实时时钟模块中相应的时间寄存器(图中未示出)进行校正,以校正相应的时间值。此后,在步骤S613,安全芯片准备结束操作。另外,如果在步骤S611中判断修正结果寄存器41为空,则说明安全芯片的实时时钟与时间服务器的时间值相同或在允许的误差范围内,无需对实时时钟进行校准,处理过程可以转到步骤S613,安全芯片准备停止运行。
接下来,在步骤S614,安全芯片发送读取时间服务器的时间的指令。在步骤S615中,安全芯片接收从时间服务器传送过来的时间服务器的第三时间信息。然后,在步骤S616中,安全芯片将时间服务器的第三时间信息保存在时间服务器校验寄存器A2。此后,在步骤S617,安全芯片发送读取实时时钟模块的第四时间信息的指令。在步骤S618,安全芯片将读取的实时时钟模块的第四时间信息保存在时钟校准模块的实时时钟校验寄存器B2中。处理过程继续进行到步骤S619,安全芯片计算时间服务器校验寄存器A2与A1之间的差值,并在步骤S620中将计算结果保存在时间服务器累计寄存器C1中。同样,在步骤S621中,安全芯片计算实时时钟校准寄存器B2与B1之间的差值,并在步骤S622中将计算结果保存在实时时钟校验寄存器D1中。此后,修正算法处理模块41判断寄存器C1与D1之间的差值,以确定实时时钟的累计误差是否超过预定的阈值。如果超过预定的阈值,则利用修正结果寄存器修正安全芯片的实时时钟,并向所处理的文件提供修正后的时间戳。如果实时时钟的累计误差未超过预定阈值,则可以向所处理的文件提供实时时钟当前的时间戳。此后,在步骤S623,安全芯片结束运行。
作为替换,可以采用如下所述的另一种处理方法。在步骤S606后,经过预定时间,按照同样的操作,在时间服务器校验寄存器A2和实时时钟校验寄存器B2分别保存时间服务器和安全芯片的实时时钟的另一个时间值(即,第三时间信息和第四时间信息。对其余的校验寄存器A,B进行相同的操作。此后,时间服务器累计寄存器C1计算时间服务器校验寄存器A1和A2中的差值,并寄存在时间服务器累计寄存器C1中。实时时钟累计寄存器D1计算实时时钟校验寄存器B 1和B2中的差值,并寄存在实时时钟累计寄存器D1中。修正算法处理模块41通过比较寄存器C1和D1中的差值,判断安全芯片的时间误差是否超过预定范围。如果超过预定范围,则说明实时时钟的累计误差超过了预定的阈值。这种情况下,利用修正结果寄存器42修正安全芯片的实时时钟。
在本发明的内嵌实时时钟的安全芯片中,执行实时时钟校准处理的每个单元的功能不仅能够通过硬件实现,而且也可以通过将执行上述每个单元的功能的处理程序装载到计算机处理设备的存储器中控制计算机处理设备而实现。处理程序可以存储在诸如磁盘或半导体存储器之类的记录介质中,并且从记录介质装载到计算机处理设备中,以控制计算机处理设备的操作,从而实现上述每种功能。
在内嵌实时时钟的安全芯片之间保持时间同步有着重要作用,它可以为各种需要时间信息的安全服务体系提供相应的支持,例如版权保护、接入/拒绝服务等。
例如,版权保护可以通过软件下载服务器端的安全芯片为被保护的乐曲、影视、软件等生成一个时间许可证书,仅允许被下载的乐曲、影视、软件等在此时间段内使用,被下载到本地的乐曲、影视、软件等在运行之初都要通过安全芯片提供当前时间,从而判断是否在时间许可证书允许使用的时间段内,如果在此时间段内,则继续运行,否则终止程序运行,防止非法使用。
接入/拒绝服务可以用于分布式工作环境中,为保证各终端得到与服务器大致相同的服务时间,避免资源独占,可以由服务器为各终端分配相应的使用时间。各终端必须在规定的时间段内使用服务器,终端申请服务器资源的同时将当前时间信息发送给服务器,服务器根据已经确定的时间表,判断该终端是否是该时段允许接入的终端(通过安全芯片提供的唯一设备标示,而非IP地址),如果是,则允许接入使用资源,否则拒绝接入。
本发明同样适用于服务器,掌上电脑,便携式计算机,个人数字助理,和移动电话等其它信息处理设备。
上面已经结合优选实施例对本发明进行了描述。本领域技术人员应该理解,在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不应该被理解为被局限于上述特定实施例,而应由所附权利要求所限定。
权利要求
1.一种内嵌实时时钟的安全芯片,包括实时时钟装置,用于为数据文件提供安全芯片的当前时间值作为时间戳标记;外部频率发生器,用于为所述实时时钟装置提供基准时钟频率;时钟校准装置,用于校正所述实时时钟装置的误差,以便实现时钟同步;加密装置,用于根据加密算法产生密钥,以实现对安全芯片读写的安全保护和认证;和微控制器(MCU),用于为芯片操作系统提供操作支持和管理。
2.根据权利要求1所述的安全芯片,其中所述实时时钟装置包括多个寄存器,用于寄存相应的年、月、日、时、分、秒、毫秒的时间信息。
3.根据权利要求1所述的安全芯片,其中所述外部频率发生器是晶体振荡器。
4.根据权利要求1所述的安全芯片,其中所述时钟校准装置包括多个时间服务器校验寄存器,用于记录外部时间装置提供的基准时间;多个时间服务器累计寄存器,所述多个时间服务器累计寄存器中的每一个根据所对应的两个时间服务器校验寄存器中寄存的外部时间装置的基准时间来记录两次读取外部时间装置的间隔;多个实时时钟校验寄存器,用于记录安全芯片的内部实时时钟的时间;和多个实时时钟累计寄存器,所述多个实时时钟累计寄存器中的每一个根据所对应的两个实时时钟校验寄存器中寄存的安全芯片中的内部时间来记录两次读取内部实时时钟的间隔。
5.根据权利要求4所述的安全芯片,其中所述时间服务器累计寄存器的数量是时间服务器校验寄存器的数量的两倍。
6.根据权利要求4所述的安全芯片,其中所述实时时钟累计寄存器的数量是实时时钟校验寄存器的数量的两倍。
7.根据权利要求4所述的安全芯片,其中所述时间服务器校验寄存器的数量与实时时钟校验寄存器的数量相同。
8.根据权利要求4所述的安全芯片,其中所述时钟校准装置还包括修正算法处理装置,用于判断外部时间装置的时间是否被篡改,以确定时间服务器累计寄存器中的数值是否可用,并计算时间服务器累计寄存器中的时间值与实时时钟累计寄存器中的时间值之间的差值。
9.根据权利要求4所述的安全芯片,其中所述时钟校准装置还包括修正结果寄存装置,用于根据所述修正算法处理装置计算的差值来修正安全芯片的实时时钟的当前时间。
10.根据权利要求4所述的安全芯片,其中所述外部时间装置是用于在网络中提供基准时间的时间服务器。
11.根据权利要求1所述的安全芯片,其中所述加密装置包括安全散列算法/散列消息鉴别码(SHA/HMAC)运算装置,包括SHA和HMAC引擎,用于执行SHA和HMAC运算;RSA运算装置,用于执行RSA运算;密钥生成装置,用于生成RSA、对称算法所需的密钥;和随机数发生器。用于产生随机数以便生成随机密钥。
12.根据权利要求1所述的安全芯片,其中还包括存储装置,用于存储唯一的身份标识和身份认证,固件的完整性验证码,以及用于运行固件必要的程序和保存临时数据。
13.根据权利要求1所述的安全芯片,其中还包括电源检测装置,用于检测提供给安全芯片的电源。
14.根据权利要求1所述的安全芯片,其中还包括对外接口模块,用于接收外部设备传送的指令,和向外部返回指令运行的结果,并与外部相连。
15.一种对安全芯片的实时时钟进行修正的方法,包括步骤从外部时间服务器获取第一时间信息,并保存在安全芯片的时钟校准装置中的时间服务器校验寄存器中;获取安全芯片的实时时钟的第二时间信息,并保存在安全芯片的时钟校准装置中的实时时钟校验寄存器中;判断外部时间服务器的累计时间值与安全芯片中的实时时钟的累计时间值之间的误差值是否超过预定的阈值;如果所述误差值超过了预定的阈值,则对安全芯片的实时时钟进行校准。
16.根据权利要求15所述的方法,其中判断所述误差值是否超过预定的阈值的步骤进一步包括在误差值超过预定阈值时,利用修正算法进行修正,并将修正结果存放在修正结果寄存器中的步骤。
17.根据权利要求16所述的方法,其中进一步包括判断修正结果寄存器是否不为空的步骤,如果修正结果寄存器不为空,则利用所存放的修正结果修正安全芯片的实时时钟的时间值。
18.根据权利要求17所述的方法,其中修正结果寄存器为空,安全芯片则准备停止运行。
19.根据权利要求15至18所述的任何一项权利要求的方法,进一步包括步骤经过预定时间后从外部时间服务器获得第三时间信息,并保存在安全芯片的时钟校准装置中的另一个时间服务器校验寄存器中;获取安全芯片的实时时钟的第四时间信息,并保存在安全芯片的时钟校准装置中的另一个实时时钟校验寄存器中;计算从外部时间服务器获得第一时间信息与第三时间信息之间的差值,并保存在时间服务器累计寄存器中;计算获取的安全芯片的实时时钟的第二时间信息和第四时间信息之间的差值,并保存在实时时钟累计寄存器中;比较时间服务器累计寄存器和实时时钟累计寄存器中的差值,判断安全芯片的实时时钟的时间误差是否超过预定阈值。
20.根据权利要求19所述的方法,其中如果实时时钟的时间误差超过预定阈值,则修正安全芯片的实时时钟。
21.根据权利要求15所述的方法,其中进一步包括将修正的实时时钟写入所需的数据文件作为时间戳标记的步骤。
22.根据权利要求15所述的方法,其中进一步包括将正确的实时时钟写入所需的数据文件作为时间戳标记的步骤。
23.一种读取内嵌实时时钟的安全芯片的时间信息,以便添加时间信息的方法,包括步骤接收发送给安全芯片的指令,并对所接收的指令进行解析;根据所述被解析的指令判断是否需要向运行结果添加时间信息;如果需要,则读取安全芯片的实时时钟装置内部的时间寄存器,获得当前的时间信息;在运行结果的相应位置添加所获得的相应的时间信息,并将运行结果返回;和如果判断运行结果不需要添加时间信息,该直接返回运行结果。
全文摘要
本发明揭示了一种内嵌实时时钟的安全芯片,包括实时时钟装置,用于为数据文件提供安全芯片的当前时间值作为时间戳标记;外部频率发生器,用于为所述实时时钟装置提供基准时钟频率;时钟校准装置,用于校正所述实时时钟装置的误差,以便实现时钟同步;加密装置,用于根据加密算法产生密钥,以实现对安全芯片读写的安全保护和认证;和MCU,用于为芯片操作系统提供操作支持和管理。另外,本发明还揭示了一种对安全芯片的实时时钟进行修正的方法。该安全芯片不但为数据签名提供了不可抵赖的时间戳,而且可以将时间信息用于各种与时间相关的安全服务,从而使安全芯片的功能更加完善。
文档编号G06F15/76GK1707464SQ20051005589
公开日2005年12月14日 申请日期2005年3月17日 优先权日2005年3月17日
发明者谢巍 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1