芯片、所述芯片的数据保护装置及方法与流程

文档序号:12803388阅读:236来源:国知局
芯片、所述芯片的数据保护装置及方法与流程

本发明涉及芯片领域,尤其涉及一种芯片、所述芯片的数据保护装置及方法。



背景技术:

随着智能设备在当今社会中越来越普及,随之而来的就是mcu(微处理器)的使用量越来越大。特别是随着物联网的发展,信息安全变得越来越重要,非授权用户无法访问mcu内部程序以及数据会导致包含mcu的芯片中的重要信息被破解。

为了增强安全保护,现有的一种措施是在芯片中增加一个硬件安全熔丝来禁止访问数据。该种方式的缺点是熔丝很容易被定位并进行入侵攻击。一个众所周知的方法就是用紫外线来擦掉安全熔丝,或者fib来跳过熔丝电路。

为了进一步提高安全等级,还有一种方式是将安全熔丝做成存储器阵列的一部分。例如,将熔丝与主存储器离得很近,或干脆与主存储器共享一些控制线。因为晶圆厂使用与主存储器相同的工艺来制造,熔丝很难被定位和复位。但非侵入式攻击仍然可用,例如,采用切割的方式将存储单元拆分出来,再对存储单元中的程序进行读取操作。

因此,针对上述各方案中的缺点,需要对现有技术进行改进。



技术实现要素:

本发明提供一种芯片、所述芯片的数据保护装置及方法,用于解决现有技 术中芯片中保存的数据不安全的问题。

基于上述目的,本发明提供一种芯片的数据保护装置,所述芯片中包含存储单元和外部接口,所述数据保护装置包括:与所述存储单元相连的处理单元,用于在上电时运行所述存储单元中的启动程序,用以执行在定时时长内允许所述开关单元接收外部接口的第二密码,以及读取所述存储单元中的第一密码;与所述外部接口和处理单元相连的开关单元,用于将所述外部接口所传递第二密码和所述第一密码进行比较,并基于比较结果确定导通/断开所述外部接口与存储单元之间的通路;与所述存储单元和开关单元相连的加解密单元,用于基于所述处理单元所提供的第一密码,将对应所述第一密码的、加密后的存储信息进行解密,并根据来自所述外部接口的指令,将所述存储信息通过所述通道予以反馈。

优选地,所述开关单元还用于基于所述比较结果确定导通/断开所述处理单元与加解密单元之间的通路;对应的,所述加解密单元还用于根据来自所述处理单元的指令,将所述存储信息通过所述处理单元与加解密单元之间的通路予以反馈。

优选地,所述第一密码包括以下至少一种或多种的组合:随机数、所述芯片的标识信息、密钥。

优选地,所述加解密单元包括:用于生成随机数的随机数生成器;用于保存标识信息的标识信息寄存器;与所述随机数生成器、标识信息寄存器相连的加解密电路,用于产生所述密钥;以及用于基于所接收的写指令从所述随机数生成器、标识信息寄存器中的至少一处,读取包含随机数、标识信息中至少一种、以及密钥的第一密码,并基于所读取的第一密码对所接收的存储信息进行加密,并将加密后的存储信息和所述第一密码配对的保存在所述存储单元中, 并将所述第一密码通过所述外部接口提供给用户。

优选地,所述开关单元包括:与所述处理单元相连的第一寄存器、和包含多个比较电路的判断电路;所述处理单元在上电时将所述存储单元中保存的第一密码写入所述第一寄存器中;所述第一寄存器用于将所写入的第一密码中各密码位以电平信号方式分别输出至对应密码位的比较电路的一个输入端;所述判断电路中的每个比较电路的另一输入端与所述外部接口中对应第二密码的同一密码位的一个电平引脚单独相连;其中,所述比较电路在所述外部接口所提供的电平信号与第一寄存器所提供的电平信号为等同时,输出用于表示密码位一致的电平信号;所述判断电路用于根据每个比较电路所输出的电平信号,输出用于控制通路同时导通/断开的电平信号。

优选地,所述开关单元还包括:用于存储密码错误次数的第二寄存器;所述开关单元还用于当确定所述通路断开时,指示所述处理单元更改所述第二寄存器中的密码错误次数;对应的,所述处理单元还用于监测所述密码错误次数,并在所述密码错误次数达到预设错误次数阈值时,擦除所述存储单元中的加密的存储信息。

基于上述目的,本发明还提供一种芯片,包括:如上任一所述的数据保护装置。

基于上述目的,本发明还提供一种芯片的数据保护方法,其中,所述芯片包括外部接口和存储单元,所述方法包括:在上电后的定时时长内允许接收外部接口的第二密码,以及读取所述存储单元中的第一密码;将所述外部接口所传递第二密码和所述第一密码进行比较,并基于比较结果确定导通/断开所述外部接口与存储单元之间的通路;基于所述处理单元所提供的第一密码,将对应所述第一密码的、加密后的存储信息进行解密,并根据来自所述外部接口的指 令,将所述存储信息通过相应通道予以反馈。

优选地,还包括:基于所述比较结果确定导通/断开所述处理单元与加解密单元之间的通路;对应的,在所述解密步骤后,还根据来自所述处理单元的指令,将所述存储信息通过所述处理单元与加解密单元之间的通路予以反馈。

优选地,还包括:基于写指令生成包含随机数、标识信息中至少一种、以及密钥的第一密码,并基于所读取的第一密码对所接收的存储信息进行加密,并将加密后的存储信息和所述第一密码配对的保存在所述存储单元中,并将所述第一密码通过所述外部接口提供给用户。

优选地,所述将外部接口所传递第二密码和所述第一密码进行比较的方式包括:将所述第一密码和第二密码按照密码位对应比较;当各密码位的比较结果均为对应密码位一致的电平信号,则确定所述第一密码和第二密码一致;反之,则确定所述第一密码和第二密码不一致。

优选地,还包括:记录所述第一密码和第二密码不一致的密码错误次数,当所述密码错误次数达到预设阈值,则擦除所述存储单元中的加密的存储信息。

如上所述,本发明的芯片、所述芯片的数据保护装置及方法,具有以下有益效果:通过比对外部接口接收的密码和内部保存的密码来确定是否导通芯片中的存储单元与外部接口的通路,能够确保存储信息的安全,同时,利用加解密单元对存储信息进行加密保存和解密读取,进一步保证了即便存储单元被拆卸,也不会导致存储信息被破解;另外,采用硬件电路的方式对每一密码位进行验证,有效防止非法技术人员对程序的篡改和利用程序漏洞来入侵的情况;此外,利用随机数、芯片的唯一标识信息和密钥等手段对存储信息进行加密,有效提高了存储信息的安全级别;还有,设置密码错误次数,进一步防止非法技术人员对芯片进行无限次尝试。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。

图1是本发明的芯片的一个实施例的结构方框图。

图2是本发明的数据保护装置中的开关单元的一个实施例的结构方框图。

图3是本发明的开关单元中第一寄存器的一个实施例的结构方框图。

图4是本发明的外部接口的一个实施例的结构方框图。

图5是本发明的加解密单元的一个实施例的结构方框图。

图6是本发明的数据保护方法的一个实施例的流程图。

具体实施方式

为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明提供一种带有数据保护装置的芯片。所述数据保护装置用于将芯片中存储单元所保存的存储信息进行加密,并配合密码验证机制来实现对芯片内数据的有效保护。在此,所述芯片1主要指带有处理器(如mcu)的集成电路芯片1。所述芯片1还包括存储单元15和外部接口11。 所述数据保护装置包括:处理单元12、开关单元13、加解密单元14。在此,所述存储单元15可以位于芯片1的底部,以防止存储单元15被切割和存储单元15中的存储信息被擦除。

所述处理单元12与所述存储单元15相连,用于在上电时运行所述存储单元15中的启动程序,用以执行在定时时长内允许所述开关单元13接收外部接口11的第二密码,以及读取所述存储单元15中的第一密码。

具体地,所述处理单元12在上电时,读取存储单元15中的启动程序(如bootloader),并按照所述启动程序的设定,在定时时长内允许所述开关单元13接收外部接口11的第二密码,以及读取所述存储单元15中保存的第一密码,并交由所述开关单元13。在此,所述第一密码包括以下至少一种或多种的组合:随机数、所述芯片1的标识信息、密钥。

所述开关单元13与所述外部接口11和处理单元12相连,用于将所述外部接口11所传递的第二密码和所述第一密码进行比较,并基于比较结果确定导通/断开所述外部接口11与存储单元15之间的通路、和所述处理单元12和加解密单元14之间的通路。

在此,所述开关单元13可以根据所述处理单元12的指示,在预设定时时长内允许所述外部接口11接收烧录器所提供的第二密码。若在定时时长内未接收到第二密码,则仅导通所述处理单元12和加解密单元14之间的通路。所述处理单元12可以指示所述加密单元按照所述第一密码反馈相应的解密后的存储信息,并执行所述存储信息中的程序。

若所述开关单元13在定时时长内接收到所述第二密码,则将所述外部接口11所传递第二密码和所述第一密码进行比较,并基于比较结果确定导通/断开所述外部接口11与存储单元15之间的通路,并断开所述处理单元12和加解密单 元14之间的通路。其中,所述开关单元13还可以根据比较结果同时导通两通路,并根据后续的指令,选择断开相应通路。

在此,所述开关单元13可由所述芯片1中的处理器通过执行启动程序中的比较程序来判断导通或断开。

在此,所述外部接口11与存储单元15之间的通路包含所述外部接口11、加解密单元14和存储单元15。所述处理单元12和加解密单元14之间的通路包含所述处理单元12、加解密单元14和存储单元15。

优选地,所述开关单元13包括:与所述处理单元12相连的第一寄存器131、和包含多个比较电路的判断电路132。如图2所示。

在此,所述处理单元12在上电时将所述存储单元15中保存的第一密码写入所述第一寄存器131中。

所述第一寄存器131用于将所写入的第一密码中各密码位以电平信号方式分别输出至对应密码位的比较电路的一个输入端。

具体地,如图3所示,所述第一寄存器131中包含多个触发器。每个触发器对应接收第一密码中的一个密码位,并根据所接收的密码位输出相应的电平信号。例如,触发器接收的密码位为0,则对应输出低电平信号。

对应的,所述判断电路132中的一个比较电路对应比较第一密码和第二密码的一个密码位。具体地,所述比较电路的一个输入端连接所述第一寄存器131的一个电平输出端、另一个输入端连接所述外部接口11的同一密码位的电平输出端。所述比较电路包括异或逻辑器件,当所接收的两个电平信号均为高电平、或均为低电平时,输出表示两电平等同的电平信号。

其中,所述外部接口11的结构举例如图4所示。

一种优选方案中,为了防止第一寄存器131所输出的信号电压和外部接口 11所述出信号电压不一样,而导致比较电路无法甄别同为高电平的电平信号是否等同。所述比较电路包括:两个并联的第一比较器和与该两个第一比较器的输出端相连的第二比较器。每个第一比较器的一个输入端单独连接外部接口11或第一寄存器131,每个第一比较器的另一输入端连接一参考电压,当第一比较器的另一输入端所输入的电平信号高于参考电压,则输出高电平。如此,能够确保当所述第二比较器所接收的两电平信号均为高电平时,判定两高电平信号的电压相等。由此输出判定准确的比较结果。

所述判断电路132中还包括与每个比较电路的输出端相连的异或逻辑器件,该异或逻辑器件只有在所有比较电路输出表示两电平等同的电平信号时,确定导通所述外部接口11与存储单元15之间的通路、和所述处理单元12和加解密单元14之间的通路。

作为又一种优选方案,所述开关电路中还包括:用于存储密码错误次数的第二寄存器。例如,所述第二寄存器中包含三个寄存位,每个寄存位的初始值为1。

所述开关单元13还用于当确定两所述通路同时断开时,指示所述处理单元12更改所述第二寄存器中的密码错误次数。

对应的,所述处理单元12还用于监测所述密码错误次数,并在所述密码错误次数达到预设错误次数阈值时,擦除所述存储单元15中的加密的存储信息。

具体地,当所述开关单元13中的判断电路132输出用于表示断开两条通路的电平信号时,所述处理单元12更改所述第二寄存器中的一位寄存位,直到所有寄存位都为0,则擦除所述存储单元15中的加密的存储信息。

所述加解密单元14与所述存储单元15和开关单元13相连,用于基于所述处理单元12所提供的第一密码,将对应所述第一密码的、加密后的存储信息进 行解密,并根据来自所述处理单元12、或外部接口11的指令,将所述存储信息通过相应通道予以反馈。

具体地,所述加解密单元14具有对存储信息进行加密和解密的功能。对于读取存储信息过程来说,当所述开关单元13确定同时导通所述外部接口11与存储单元15之间的通路、和所述处理单元12和加解密单元14之间的通路时,或者当所述开关单元13在定时时长内未收到第二密码而仅导通所述处理单元12和加解密单元14之间的通路时,所述加解密单元14主要将加密保存的存储信息进行解密,以得到处理单元12能够执行的、以及外部接口11所连接的烧录器(或仿真器)能够呈现的程序和/或数据。

优选地,对于写存储信息的过程来说,所述加解密单元14包括:加解密电路143,还根据设计需要可以包括:随机数生成器141、标识信息寄存器142。如图5所示。

所述加解密电路143用于产生密钥。

所述随机数生成器141用于生成随机数。

所述标识信息寄存器142用于保存标识信息。其中,所述标识信息举例为芯片1标识码。

其中,所述加解密电路143根据所连接的器件所能提供的加密信息(随机数和/或标识信息)来进行加密。

若所述加解密单元14中包含上述三个器件,则所述加解密电路143基于写指令从所述随机数生成器141和标识信息寄存器142中,读取随机数和标识信息,并利用des/sm4等加密算法将包含所生成的密钥、随机数和标识信息的第一密码,和来自外部接口11的存储信息进行加密,并将加密后的存储信息和所述第一密码配对的保存在所述存储单元15中,并将所述第一密码通过所述外部 接口11提供给用户。如此,用户可以保存第一密码,并在需要修改芯片1中的存储信息时,将其作为第二密码通过外部接口11输入,以供所述开关单元13进行密码验证。

需要说明的是,所述加解密电路143所采用的加解密算法是配对的,且并不限于基于des/sm4的加解密算法。

如图6所示,本发明还提供一种芯片的数据保护方法。所述数据保护方法主要由所述芯片中的数据保护装置来执行。其中,所述数据保护装置可以利用芯片中的处理器采用纯软件的方式来执行所述方法。也可以按照上述的电路结构来执行所述方法。若为后者,所述数据保护装置包括:处理单元、开关单元、加解密单元。

在步骤s1中,所述数据保护装置在上电时的定时时长内允许接收外部接口的第二密码,以及读取所述存储单元中的第一密码。

具体地,所述处理单元在上电时,读取存储单元中的启动程序(如bootloader),并按照所述启动程序的设定,在定时时长内允许所述开关单元接收外部接口的第二密码,以及读取所述存储单元中保存的第一密码,并交由所述开关单元。在此,所述第一密码包括以下至少一种或多种的组合:随机数、所述芯片的标识信息、密钥。

在步骤s2中,所述数据保护装置将所述外部接口所传递的第二密码和所述第一密码进行比较,并基于比较结果确定导通/断开所述外部接口与存储单元之间的通路、和所述处理单元和加解密单元之间的通路。

在此,所述开关单元可以根据所述处理单元的指示,在预设定时时长内允许所述外部接口接收烧录器所提供的第二密码。若在定时时长内未接收到第二密码,则仅导通所述处理单元和加解密单元之间的通路。所述处理单元可以指 示所述加密单元按照所述第一密码反馈相应的解密后的存储信息,并执行所述存储信息中的程序。

若所述开关单元在定时时长内接收到所述第二密码,则将所述外部接口所传递第二密码和所述第一密码进行比较,并基于比较结果确定导通/断开所述外部接口与存储单元之间的通路,并断开所述处理单元和加解密单元之间的通路。其中,所述开关单元还可以根据比较结果同时导通两通路,并根据后续的指令,选择断开相应通路。

在此,所述开关单元可由所述芯片中的处理器通过执行启动程序中的比较程序来判断导通或断开。

在此,所述外部接口与存储单元之间的通路包含所述外部接口、加解密单元和存储单元。所述处理单元和加解密单元之间的通路包含所述处理单元、加解密单元和存储单元。

优选地,所述步骤s2包括步骤s21、s22。

在步骤s21中,所述数据保护装置将所述第一密码和第二密码按照密码位对应比较。

在步骤s22中,所述数据保护装置当各密码位的比较结果均为对应密码位一致的电平信号,则确定所述第一密码和第二密码一致;反之,则确定所述第一密码和第二密码不一致。

在此,所述开关单元包括:与所述处理单元相连的第一寄存器、和包含多个比较电路的判断电路。如图2所示。

对应的,所述处理单元在上电时将所述存储单元中保存的第一密码写入所述第一寄存器中。

所述第一寄存器用于将所写入的第一密码中各密码位以电平信号方式分别 输出至对应密码位的比较电路的一个输入端。

具体地,如图3所示,所述第一寄存器中包含多个触发器。每个触发器对应接收第一密码中的一个密码位,并根据所接收的密码位输出相应的电平信号。例如,触发器接收的密码位为0,则对应输出低电平信号。

对应的,所述判断电路中的一个比较电路对应比较第一密码和第二密码的一个密码位。具体地,所述比较电路的一个输入端连接所述第一寄存器的一个电平输出端、另一个输入端连接所述外部接口的同一密码位的电平输出端。所述比较电路包括异或逻辑器件,当所接收的两个电平信号均为高电平、或均为低电平时,输出表示两电平等同的电平信号。

其中,所述外部接口的结构举例如图4所示。

一种优选方案中,为了防止第一寄存器所输出的信号电压和外部接口所述出信号电压不一样,而导致比较电路无法甄别同为高电平的电平信号是否等同。所述比较电路包括:两个并联的第一比较器和与该两个第一比较器的输出端相连的第二比较器。每个第一比较器的一个输入端单独连接外部接口或第一寄存器,每个第一比较器的另一输入端连接一参考电压,当第一比较器的另一输入端所输入的电平信号高于参考电压,则输出高电平。如此,能够确保当所述第二比较器所接收的两电平信号均为高电平时,判定两高电平信号的电压相等。由此输出判定准确的比较结果。

所述判断电路中还包括与每个比较电路的输出端相连的异或逻辑器件,该异或逻辑器件只有在所有比较电路输出表示两电平等同的电平信号时,确定导通所述外部接口与存储单元之间的通路、和所述处理单元和加解密单元之间的通路。

作为又一种优选方案,所述方法还包括:步骤s3。

在步骤s3中,所述数据保护装置记录所述第一密码和第二密码不一致的密码错误次数,当所述密码错误次数达到预设阈值,则擦除所述存储单元中的加密的存储信息。

具体地,所述开关电路中还包括:用于存储密码错误次数的第二寄存器。例如,所述第二寄存器中包含三个寄存位,每个寄存位的初始值为1。

所述开关单元当确定两所述通路同时断开时,指示所述处理单元更改所述第二寄存器中的密码错误次数。

对应的,所述处理单元还用于监测所述密码错误次数,并在所述密码错误次数达到预设错误次数阈值时,擦除所述存储单元中的加密的存储信息。

例如,当所述开关单元中的判断电路输出用于表示断开两条通路的电平信号时,所述处理单元更改所述第二寄存器中的一位寄存位,直到所有寄存位都为0,则擦除所述存储单元中的加密的存储信息。

在步骤s4中,所述数据保护装置基于所述处理单元所提供的第一密码,将对应所述第一密码的、加密后的存储信息进行解密,并根据来自所述处理单元、或外部接口的指令,将所述存储信息通过相应通道予以反馈。

具体地,所述加解密单元具有对存储信息进行加密和解密的功能。对于读取存储信息过程来说,当所述开关单元确定同时导通所述外部接口与存储单元之间的通路、和所述处理单元和加解密单元之间的通路时,或者当所述开关单元在定时时长内未收到第二密码而仅导通所述处理单元和加解密单元之间的通路时,所述加解密单元主要将加密保存的存储信息进行解密,以得到处理单元能够执行的、以及外部接口所连接的烧录器(或仿真器)能够呈现的程序和/或数据。

优选地,对于写存储信息的过程来说,所述加解密单元包括:加解密电路, 还根据设计需要可以包括:随机数生成器、标识信息寄存器。如图5所示。

所述加解密电路用于产生密钥。

所述随机数生成器用于生成随机数。

所述标识信息寄存器用于保存标识信息。其中,所述标识信息举例为芯片标识码。

其中,所述加解密电路根据所连接的器件所能提供的加密信息(随机数和/或标识信息)来进行加密。

若所述加解密单元中包含上述三个器件,则所述加解密电路基于写指令从所述随机数生成器和标识信息寄存器中,读取随机数和标识信息,并利用des/sm4等加密算法将包含所生成的密钥、随机数和标识信息的第一密码,和来自外部接口的存储信息进行加密,并将加密后的存储信息和所述第一密码配对的保存在所述存储单元中,并将所述第一密码通过所述外部接口提供给用户。如此,用户可以保存第一密码,并在需要修改芯片中的存储信息时,将其作为第二密码通过外部接口输入,以供所述开关单元进行密码验证。

需要说明的是,所述加解密电路所采用的加解密算法是配对的,且并不限于基于des/sm4的加解密算法。

综上所述,本发明的芯片、所述芯片的数据保护装置及方法,通过限定芯片与烧录器等外部设备的通信时间,能够有效防止芯片受外部设备的肆意干扰;另外,通过比对外部接口接收的密码和内部保存的密码来确定是否导通芯片中的存储单元与外部接口的通路,能够确保存储信息的安全,同时,利用加解密单元对存储信息进行加密保存和解密读取,进一步保证了即便存储单元被拆卸,也不会导致存储信息被破解;另外,采用硬件电路的方式对每一密码位进行验证,有效防止非法技术人员对程序的篡改和利用程序漏洞来入侵的情况;此外, 利用随机数、芯片的唯一标识信息和密钥等手段对存储信息进行加密,有效提高了存储信息的安全级别;还有,设置密码错误次数,进一步防止非法技术人员对芯片进行无限次尝试。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

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