CN108229207B - 一种具有存储器内部数据防篡改机制的soc芯片及方法 - Google Patents
一种具有存储器内部数据防篡改机制的soc芯片及方法 Download PDFInfo
- Publication number
- CN108229207B CN108229207B CN201611126360.1A CN201611126360A CN108229207B CN 108229207 B CN108229207 B CN 108229207B CN 201611126360 A CN201611126360 A CN 201611126360A CN 108229207 B CN108229207 B CN 108229207B
- Authority
- CN
- China
- Prior art keywords
- storage unit
- characteristic value
- microprocessor
- unit
- chip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
Abstract
本发明提供一种具有存储器内部数据防篡改机制的SOC芯片及方法,所述芯片包括:第一存储单元,用于存储由芯片生产提供者负责维护的敏感系统数据;第二存储单元,用于存储由用户负责维护的用户数据和程序;微处理器,用于访问所述第一、第二存储单元;访问控制单元,连接于所述微处理器与所述第一、第二存储单元之间,用于完成所述微处理器访问所述第一、第二存储单元的时序控制;特征值单元,连接于所述微处理器,用于计算所述第二存储单元中用户代码的特征值,并与预先存储在所述第一存储单元内的特征值进行比较,以判断用户代码是否被非法篡改。本发明通过上电后特征值校验电路,可以检测NVM存储器是否意外丢失数据,提高芯片的可靠性。
Description
技术领域
本发明属于片上系统领域,涉及一种具有存储器内部数据防篡改机制的SOC芯片及方法。
背景技术
片上系统(System on Chip,简称SOC),从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度讲,SOC是一个微小型系统,其将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,通常是客户定制的,或是面向特定用途的标准产品。
微控制单元(Microcontroller Unit;MCU)一般内部都集成了非易失性存储器(Non-Volatile Memory,NVM)用于存放用户程序和数据。随着MCU的使用越来越普及,对于MCU内部数据安全性的要求也越来越高。如何保护NVM非易失性存储器内的数据变得尤为重要。
存储于MCU内部NVM存储器内的用户代码往往是非法攻击的重要部件,通过篡改内部的用户代码达到控制用户系统的目的。
同样,NVM存储器在某些特定条件下(如:高温/高压等极限状况),也可能发生内部数据丢失或者部分数据比特位被篡改的情况。
因此,如何提供一种具有存储器内部数据防篡改机制的SOC芯片及方法,以提高芯片安全性,成为本领域技术人员亟待解决的一个重要技术问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种具有存储器内部数据防篡改机制的SOC芯片及方法,用于解决现有技术中SOC芯片安全风险较高的问题。
为实现上述目的及其他相关目的,本发明提供一种具有存储器内部数据防篡改机制的SOC芯片,包括:
第一存储单元,用于存储由芯片生产提供者负责维护的敏感系统数据;
第二存储单元,用于存储由用户负责维护的用户数据和程序;
微处理器,用于访问所述第一存储单元或第二存储单元;
访问控制单元,连接于所述微处理器与所述第一存储单元、第二存储单元之间,用于完成所述微处理器访问所述第一存储单元、第二存储单元的时序控制;
特征值单元,连接于所述微处理器,用于计算所述第二存储单元中用户代码的特征值,并与预先存储在所述第一存储单元内的特征值进行比较,以判断用户代码是否被非法篡改。
可选地,所述特征值单元被设置为当判定为非法篡改后,产生一个用户代码被非法篡改的中断给所述微处理器。
可选地,所述微处理器被设置为当接收到所述中断后,将所述芯片复位。
可选地,所述特征值单元包括特征值计算单元、第一锁存器及比较器;其中:
所述特征值计算单元连接于所述微处理器与所述第一锁存器之间,用于接收所述微处理器从所述第二存储单元读出的用户代码,计算所述用户代码的特征值,并将计算所得的特征值输入所述第一锁存器;
所述比较器的第一输入端与所述微处理器相连,所述比较器的第二输入端与所述第一锁存器的输出端连接,所述比较器的输出端与所述微处理器连接,用于将所述微处理器从所述第一存储单元读出的特征值与所述特征值计算单元计算得到的特征值进行比较。
可选地,所述特征值计算单元的输入端与所述比较器之间还连接有第二锁存器,用于给所述比较器上电。
可选地,预先存储在所述第一存储单元内的特征值为128比特,所述特征值单元根据用户代码计算出的特征值为128比特。
可选地,所述第二存储单元中用户代码为32比特。
可选地,所述第一存储单元及第二存储单元均为非易失性存储器。
可选地,所述敏感系统数据包括启动装载(bootloader)、用户密钥、系统存储空间配置信息、校准值及芯片唯一标识码中的一种或多种。
本发明还提供一种存储器内部数据防篡改机制的方法,应用于如上任意一项所述的具有存储器内部数据防篡改机制的SOC芯片,所述方法包括:
芯片上电且完成复位操作后,所述第一存储单元和第二存储单元都可以通过微处理器的地址空间进行访问;
程式从所述第一存储单元开始执行,所述微处理器将所述第二存储单元中的用户代码读出到所述特征值单元,所述特征值单元计算出对应的特征值;
经过多次迭代计算后,得到最终的128比特特征值;
所述特征值单元将计算所得的特征值与存储在所述第一存储单元内的128比特特征值进行比较;
若比较结果一致,则跳转到用户程序区执行用户程序;若比较结果不一致,则产生一个中断给微处理器;
所述微处理器收到非法篡改的中断后,将所述芯片复位。
如上所述,本发明的具有存储器内部数据防篡改机制的SOC芯片及方法,具有以下有益效果:本发明使用不同的NVM存储器分别存储系统信息和用户代码数据,当系统上电后,先检查用户代码是否被篡改,如果校验正确,则执行用户程序。如果校验失败,则复位芯片。其中,特征值单元可以是采用任何通用或私有的杂凑算法,破解难度高。通过上电后特征值校验电路,可以检测NVM存储器是否意外丢失数据,提高芯片的可靠性。
附图说明
图1显示为本发明的具有存储器内部数据防篡改机制的SOC芯片的结构示意图。
图2显示为所述特征值单元的电路结构图。
图3显示为本发明的存储器内部数据防篡改机制的方法的流程示意图。
元件标号说明
1 第一存储单元
2 第二存储单元
3 访问控制单元
4 微处理器
5 特征值单元
501 特征值计算单元
502 第一锁存器
503 比较器
504 第二锁存器
S1~S6 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
请参阅图1至图3。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明提供一种具有存储器内部数据防篡改机制的SOC芯片,请参阅图1,显示为该SOC芯片的结构示意图,包括第一存储单元1、第二存储单元2、访问控制单元3、微处理器4及特征值单元5。
具体的,所述第一存储单元1用于存储由芯片生产提供者负责维护的敏感系统数据。作为示例,所述敏感系统数据包括启动装载(bootloader)、用户密钥、系统存储空间配置信息、校准值及芯片唯一标识码中的一种或多种。本实施例中,所述第一存储单元1中存储有128比特特征值。
所述第二存储单元2用于存储由用户负责维护的用户数据和程序。本实施例中,所述第二存储单元2中存储有32比特的用户代码。
本实施例中,所述第一存储单元1及第二存储单元2均采用非易失性存储器(Non-Volatile Memory,NVM),当电源关掉后,其所存储的数据不会消失。本发明将敏感数据和普通数据分别放在不同的存储器内,从物理上隔离,有利于增加芯片的安全性。
所述微处理器4用于读/写访问所述第一存储单元1或第二存储单元2。所述访问控制单元3连接于所述微处理器4与所述第一存储单元1、第二存储单元2之间,用于完成所述微处理器4访问所述第一存储单元1、第二存储单元2的时序控制。
特别的,所述特征值单元5连接于所述微处理器4,用于计算所述第二存储单元2中用户代码的特征值,并与预先存储在所述第一存储单元内的特征值进行比较,以判断用户代码是否被非法篡改。
具体的,所述特征值单元5被设置为当判定为非法篡改后,产生一个用户代码被非法篡改的中断给所述微处理器4。所述微处理器4被设置为当接收到所述中断后,将所述芯片复位。
作为示例,图2中展示了所述特征值单元5的电路结构图,包括特征值计算单元501、第一锁存器502及比较器503;其中:
所述特征值计算单元501连接于所述微处理器4与所述第一锁存器502之间,用于接收所述微处理器4从所述第二存储单元2读出的用户代码,计算所述用户代码的特征值,并将计算所得的特征值输入所述第一锁存器502;
所述比较器503的第一输入端与所述微处理器4相连,所述比较器503的第二输入端与所述第一锁存器502的输出端连接,所述比较器503的输出端与所述微处理器4连接,用于将所述微处理器4从所述第一存储单元1读出的特征值与所述特征值计算单元501计算得到的特征值进行比较。
本实施例中,预先存储在所述第一存储单元1内的特征值为128比特,所述特征值单元5根据用户代码计算出的特征值也为128比特。
具体的,所述特征值计算单元501是一些数字逻辑,用于接收来自所述微处理器4的32比特数据,并经过组合逻辑计算得到128比特特征值。所述第一锁存器502是一组128比特位宽的锁存器,用于锁存所述特征值计算单元501输出的特征值。
特别的,所述特征值单元501可以采用任何通用或私有的杂凑算法,破解难度高。
具体的,当微处理器传送完最后的一个32比特数据后,会通过写操作将所述第二锁存器504置位,表明所述特征值计算单元501的结果已经计算完成。所述第二锁存器504的输出用于使能所述比较器503,表明所述比较器503的输出是有效的。本实施例中,所述第二锁存器504接收1比特的输入信号。
所述比较器503是做“异或”操作,比较结果相同则输出“0”,无中断产生。比较结果不同则输出“1”,中断产生。
本发明的特征值单元5采用数字电路架构,通过计算用户代码的特征值并与预先存储在第一存储单元1内的128比特特征值进行比较,来达到检测用户代码是否被篡改的目的,从而实现第二存储单元内数据的安全存储,同时提高芯片的可靠性。
图3展示为本发明所述存储器内部数据防篡改机制的方法的流程示意图,所述方法包括:
步骤S1:芯片上电且完成复位操作后,所述第一存储单元1和第二存储单元2都可以通过微处理器4的地址空间进行访问。
步骤S2:程式从所述第一存储单元1开始执行,所述微处理器4将所述第二存储单元2中的用户代码读出到所述特征值单元5,所述特征值单元5计算出对应的特征值。
步骤S3:经过多次迭代计算后,得到最终的128比特特征值。
步骤S4:所述特征值单元5将计算所得的特征值与存储在所述第一存储单元1内的128比特特征值进行比较。
步骤S5:若比较结果一致,则跳转到用户程序区执行用户程序;若比较结果不一致,则产生一个中断给微处理器4。
步骤S6:所述微处理器4收到非法篡改的中断后,将所述芯片复位。
综上所述,本发明的具有存储器内部数据防篡改机制的SOC芯片及方法使用不同的NVM存储器分别存储系统信息和用户代码数据,当系统上电后,先检查用户代码是否被篡改,如果校验正确,则执行用户程序。如果校验失败,则复位芯片。其中,特征值单元可以是采用任何通用或私有的杂凑算法,破解难度高。通过上电后特征值校验电路,可以检测NVM存储器是否意外丢失数据,提高芯片的可靠性。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (9)
1.一种具有存储器内部数据防篡改机制的SOC芯片,其特征在于,包括:
第一存储单元,用于存储由芯片生产提供者负责维护的敏感系统数据;
第二存储单元,用于存储由用户负责维护的用户数据和程序;
微处理器,用于访问所述第一存储单元或第二存储单元;
访问控制单元,连接于所述微处理器与所述第一存储单元、第二存储单元之间,用于完成所述微处理器访问所述第一存储单元、第二存储单元的时序控制;
特征值单元,连接于所述微处理器,用于计算所述第二存储单元中用户代码的特征值,并与预先存储在所述第一存储单元内的特征值进行比较,以判断用户代码是否被非法篡改,所述特征值单元包括特征值计算单元、第一锁存器及比较器;其中:
所述特征值计算单元连接于所述微处理器与所述第一锁存器之间,用于接收所述微处理器从所述第二存储单元读出的用户代码,计算所述用户代码的特征值,并将计算所得的特征值输入所述第一锁存器;
所述比较器的第一输入端与所述微处理器相连,所述比较器的第二输入端与所述第一锁存器的输出端连接,所述比较器的输出端与所述微处理器连接,用于将所述微处理器从所述第一存储单元读出的特征值与所述特征值计算单元计算得到的特征值进行比较。
2.根据权利要求1所述的具有存储器内部数据防篡改机制的SOC芯片,其特征在于:所述特征值单元被设置为当判定为非法篡改后,产生一个用户代码被非法篡改的中断给所述微处理器。
3.根据权利要求2所述的具有存储器内部数据防篡改机制的SOC芯片,其特征在于:所述微处理器被设置为当接收到所述中断后,将所述芯片复位。
4.根据权利要求1所述的具有存储器内部数据防篡改机制的SOC芯片,其特征在于:所述特征值计算单元的输入端与所述比较器之间还连接有第二锁存器,用于给所述比较器上电。
5.根据权利要求1所述的具有存储器内部数据防篡改机制的SOC芯片,其特征在于:预先存储在所述第一存储单元内的特征值为128比特,所述特征值单元根据用户代码计算出的特征值为128比特。
6.根据权利要求1所述的具有存储器内部数据防篡改机制的SOC芯片,其特征在于:所述第二存储单元中用户代码为32比特。
7.根据权利要求1所述的具有存储器内部数据防篡改机制的SOC芯片,其特征在于:所述第一存储单元及第二存储单元均为非易失性存储器。
8.根据权利要求1所述的具有存储器内部数据防篡改机制的SOC芯片,其特征在于:所述敏感系统数据包括启动装载(bootloader)、用户密钥、系统存储空间配置信息、校准值及芯片唯一标识码中的一种或多种。
9.一种存储器内部数据防篡改机制的方法,其特征在于,应用于如权利要求1-8任意一项所述的具有存储器内部数据防篡改机制的SOC芯片,所述方法包括:
芯片上电且完成复位操作后,所述第一存储单元和第二存储单元都可以通过微处理器的地址空间进行访问;
程式从所述第一存储单元开始执行,所述微处理器将所述第二存储单元中的用户代码读出到所述特征值单元,所述特征值单元计算出对应的特征值;
经过多次迭代计算后,得到最终的128比特特征值;
所述特征值单元将计算所得的特征值与存储在所述第一存储单元内的128比特特征值进行比较;
若比较结果一致,则跳转到用户程序区执行用户程序;若比较结果不一致,则产生一个中断给微处理器;
所述微处理器收到非法篡改的中断后,将所述芯片复位。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611126360.1A CN108229207B (zh) | 2016-12-09 | 2016-12-09 | 一种具有存储器内部数据防篡改机制的soc芯片及方法 |
PCT/CN2017/085623 WO2018103274A1 (zh) | 2016-12-09 | 2017-05-24 | 一种具有存储器内部数据防篡改机制的soc芯片及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611126360.1A CN108229207B (zh) | 2016-12-09 | 2016-12-09 | 一种具有存储器内部数据防篡改机制的soc芯片及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108229207A CN108229207A (zh) | 2018-06-29 |
CN108229207B true CN108229207B (zh) | 2021-09-14 |
Family
ID=62491694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611126360.1A Active CN108229207B (zh) | 2016-12-09 | 2016-12-09 | 一种具有存储器内部数据防篡改机制的soc芯片及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108229207B (zh) |
WO (1) | WO2018103274A1 (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3866597B2 (ja) * | 2002-03-20 | 2007-01-10 | 株式会社東芝 | 内部メモリ型耐タンパプロセッサおよび秘密保護方法 |
US7062598B1 (en) * | 2003-04-29 | 2006-06-13 | Advanced Micro Devices, Inc. | Bypass custom array and related method for implementing ROM fixes in a data processor |
CN101771680B (zh) * | 2008-12-29 | 2013-03-13 | 中国移动通信集团公司 | 一种向智能卡写入数据的方法、系统以及远程写卡终端 |
CN102148054A (zh) * | 2010-02-05 | 2011-08-10 | 群联电子股份有限公司 | 闪存储存系统及其控制器与防数据篡改方法 |
CN102567245B (zh) * | 2011-12-27 | 2014-10-01 | 深圳国微技术有限公司 | 用于soc芯片系统的存储控制器及其实现方法 |
JP5900143B2 (ja) * | 2012-05-15 | 2016-04-06 | 富士電機株式会社 | 制御システム、制御装置及びプログラム実行制御方法 |
US8856864B2 (en) * | 2012-09-27 | 2014-10-07 | Intel Corporation | Detecting, enforcing and controlling access privileges based on sandbox usage |
CN105320581B (zh) * | 2014-07-14 | 2018-01-19 | 瑞昱半导体股份有限公司 | 一种集成电路、验证方法及产生特征值调整码的方法 |
CN104515950B (zh) * | 2015-01-12 | 2018-05-22 | 华南师范大学 | 一种集成电路的内建自测试方法及应用 |
-
2016
- 2016-12-09 CN CN201611126360.1A patent/CN108229207B/zh active Active
-
2017
- 2017-05-24 WO PCT/CN2017/085623 patent/WO2018103274A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2018103274A1 (zh) | 2018-06-14 |
CN108229207A (zh) | 2018-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10762210B2 (en) | Firmware protection and validation | |
US8006095B2 (en) | Configurable signature for authenticating data or program code | |
TWI701571B (zh) | 判定一碼影像之一驗證雜湊之電腦實施之方法及設備,以及對一訊息進行數位簽署之電腦實施之方法及設備 | |
CN105308609B (zh) | 存储事件数据的系统和方法 | |
US10489612B2 (en) | Memory controller to verify authenticity of data | |
CN111095213A (zh) | 嵌入式程序的安全引导方法、装置、设备及存储介质 | |
CN103093150A (zh) | 一种基于可信芯片的动态完整性保护方法 | |
US20170262386A1 (en) | Scalable memory protection mechanism | |
US20110145919A1 (en) | Method and apparatus for ensuring consistent system configuration in secure applications | |
US9659171B2 (en) | Systems and methods for detecting tampering of an information handling system | |
JP4693245B2 (ja) | 外部からの不正操作に対するコンピュータコアの保護 | |
JP6518798B2 (ja) | 安全な集積回路状態を管理する装置およびその方法 | |
US8230495B2 (en) | Method for security in electronically fused encryption keys | |
KR102515381B1 (ko) | 반복적인 사이드 채널 공격 대응책 | |
US9660802B1 (en) | Systems and methods for generating and storing silicon fingerprints for a security chip | |
US9590636B1 (en) | Method and apparatus for validating a system-on-chip based on a silicon fingerprint and a unique response code | |
CN108229207B (zh) | 一种具有存储器内部数据防篡改机制的soc芯片及方法 | |
EP3091468B1 (en) | Integrated circuit access | |
EP3561705B1 (en) | Secure activation of functionality in a data processing system using iteratively derived keys | |
CN108229196B (zh) | 一种具有存储单元物理保护机制的soc芯片及方法 | |
US10459732B2 (en) | Method for operating a system on chip comprising a bootable processor to provide protection of confidential information on the system on chip | |
US9652232B2 (en) | Data processing arrangement and method for data processing | |
CN106484477B (zh) | 安全的软件下载与启动方法 | |
EP3460702A1 (en) | Method to detect an attack by fault injection on a sensitive operation | |
US7806319B2 (en) | System and method for protection of data contained in an integrated circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |