CN110858254A - 一种安全芯片 - Google Patents
一种安全芯片 Download PDFInfo
- Publication number
- CN110858254A CN110858254A CN201810958915.1A CN201810958915A CN110858254A CN 110858254 A CN110858254 A CN 110858254A CN 201810958915 A CN201810958915 A CN 201810958915A CN 110858254 A CN110858254 A CN 110858254A
- Authority
- CN
- China
- Prior art keywords
- central processing
- processing unit
- chip
- configuring
- program
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 86
- 238000009966 trimming Methods 0.000 claims description 8
- 230000002093 peripheral effect Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 description 12
- 238000013461 design Methods 0.000 description 7
- 238000000034 method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000001343 mnemonic effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
Abstract
本发明涉及一种安全芯片,包含第一中央处理单元(CPUS)和第二中央处理单元(CPU),第一中央处理单元用于执行芯片引导程序,第二中央处理单元用于执行用户程序,第一中央处理单元执行完成引导程序后,指示第二中央处理单元执行用户程序,第二中央处理单元无法执行引导程序,以提高芯片安全。
Description
技术领域
本发明涉及一种安全芯片,特别涉及一种包含有中央处理单元的芯片,更具体地涉及在芯片中配置多个CPU分别用于执行引导程序和用户程序。
背景技术
应用于大多数场景下的单核CPU芯片,如MCU、DSP、FPGA芯片等。由于仅使用一个CPU完成芯片配置、芯片上电/复位引导、用户代码执行等功能,因此需要将CPU架构、指令系统、编程模型等信息公布给开发人员。
应用于特定场景下的双/多核CPU芯片,通常分为两类。第一类CPU芯片,主要面向复杂场景,需要在性能和功耗上寻求动态平衡,此类芯片内部集成2个不同性能的CPU,如使用ARM cortex MO+处理数据采集、整合及通讯等,使用ARM cortex M4处理运动传感等复杂数学密集型算法。第二类,面向实时控制等高性能场景,此列芯片内部集成多个相同高性能CPU,如使用TMS320C28x实现低延时控制、浮点计算等。虽然使用了多个CPU,至少有一个CPU会同时执行用户代码和引导程序,因此相关信息仍然需要公布给开发人员。
上述两种中央处理单元(Center Processor Unit,CPU)芯片及其他未描述的多数CPU芯片在启动时,都会需要加载一段引导程序用于配置芯片初始化信息。这些初始化信息通常包括但不限于包括:配置芯片的时钟频率、设定电压修调参数、配置IO信息等。其中,配置IO信息可用于配置专用引脚信息等,时钟频率可使芯片工作在特定频率。初始化信息中包含的这些特殊信息是芯片正常工作的必要条件。由于芯片要用于二次开发,芯片公开的数据手册中会将包含内部功能结构、指令系统信息,芯片攻击者将上述这些信息、初始化信息与电路信息结合在一起,可以获取芯片的漏洞,芯片攻击者可以读出芯片的特定信息或者使芯片进入非正常工作状态,进而威胁芯片安全。
除上述类型的芯片外,多数CPU芯片,由于应用较广,开发人员众多等原因,仍需将芯片的CPU架构、指令系统、编程模型等信息公布给开发人员。芯片攻击者通过对这些信息的深入分析及测试,往往可以发现的芯片漏洞实施篡改配置、并读取用户代码,使得原开发人员设计的用户程序、芯片设计厂商设计的引导程序等信息被窃取,破坏芯片安全。
发明内容
本发明在芯片中嵌入一个安全CPUS,此CPUS仅执行芯片引导程序,执行完毕后,系统切换给正常CPU控制,执行与用户程序相关的功能。由于CPUS完成的功能不公开给开发人员,也不影响其进行正常的设计开发,因此包括与CPUS指令系统在内的相关信息不需要公开,底层硬件安全性大大提升。
由于此CPUS执行的功能单一,架构和指令系统可以不采用复杂的设计,因此不会给芯片增加过高的开销。
为保证CPUS的安全性,CPUS和CPU采用不同的指令系统,以防止芯片攻击者通过分析公开的CPU指令信息获取CPUS的指令内容。
一种安全芯片,包含第一中央处理单元(CPUS)和第二中央处理单元(CPU),所述第一中央处理单元用于执行芯片引导程序,所述第二中央处理单元用于执行用户程序,所述第一中央处理单元执行完成引导程序后,指示第二中央处理单元执行用户程序,第二中央处理单元无法执行引导程序。
所述第二中央处理单元无法访问所述第一中央处理单元的电路。
所述第一中央处理单元与第二中央处理单元的指令系统不同。
所述芯片引导程序包括配置时钟频率、设置电压修调参数、配置系统控制寄存器、配置调试模块、配置外设模块、配置IO、配置系统安全设置中的一项或多项功能。
一种安全芯片,包含第一类中央处理单元和第二类中央处理单元,所述第一类中央处理单元用于执行芯片引导程序,所述第二类中央处理单元用于执行用户程序,所述第一类中央处理单元执行完成引导程序后,指示第二类中央处理单元执行用户程序,第二中央处理单元无法执行引导程序。
所述第二类中央处理单元无法访问所述第一类中央处理单元的电路。
所述第一类中央处理单元与第二类中央处理单元的指令系统不同。
所述第一类中央处理单元可以包含一个或多个中央处理单元。
所述第二类中央处理单元可以包含一个或多个中央处理单元。
所述芯片引导程序包括配置时钟频率、设置电压修调参数、配置系统控制寄存器、配置调试模块、配置外设模块、配置IO、配置系统安全设置中的一项或多项功能。
附图说明
图1为现有单核CPU芯片架构图;
图2为中央处理单元CPU内部功能图;
图3为现有CPU工作流程;
图4为本发明的第一实施例;
图5为本发明实施例的流程图;
图6为本发明的CPU和CPUS的指令系统对比示意图;
图7为本发明的第二实施例。
具体实施方式
图1为一种简单的单核CPU芯片的实施架构图,只包含一个CPU。芯片100内部包含一个中央处理单元(CPU)101、电源模块(Power supply)102、时钟控制模块(Clockcontrol)103、计时器(Timer)104、随机存储器(RAM)105、非易失性存储器(NVM)106、数模转换器(ADC)107、通用输入/输出(GPIO)108、调试模块(Debug)109、通信接口(ConnectivityInterface)110等模块。其中,CPU101用于处理数据,执行引导程序和用户程序等。
图2是CPU101的内部功能架构,包含指令寄存器1011、指令译码器1012和控制单元1013、算数逻辑单元1014、程序计数器1015和寄存器组1016等模块。指令寄存器1011用于存放指令操作码,指令寄存器的输出送到指令译码器1012。指令译码器1012对该指令进行译码,译码的结果送到控制单元1013。控制单元1013根据指令译码结果,发出一系列的定时控制信号,控制单片机的各部件进行相应的工作,执行指令。算数逻辑单元1014是完成运算的电路,能进行加法、乘法等算数和逻辑运算,运算是在指令译码器1012的控制下进行的。程序计数器1015存放着下一条要执行的指令在存储器106中的地址。寄存器组1016用于存放数据。CPU执行指令的过程为,首先从存储器106中读出指令,送入指令寄存器1011保存,然后送到指令译码器1012对指令进行译码,译码结果送到控制单元1013,由控制单元1013产生各种定时信号和控制信号,再送到各个部件去进行相应的操作。
引导程序通常存储于非易失性存储ROM\EEPROM\Flash等存储之一,存储中的一段地址空间用于存储引导程序,另一段地址用于存储用户程序。一个常见的包含CPU的芯片的工作流程为,芯片复位后,CPU开始工作,首先CPU从存储器中读入引导程序,放在指令寄存器中,执行引导程序,引导程序执行完成后,CPU再开始执行非引导程序。执行引导程序实际上是对芯片进行初始化配置,这些配置包含但不限于包含如下内容:配置时钟频率、设置电压修调参数、配置系统控制寄存器、配置调试模块、配置外设模块、配置IO等。这些配置信息的执行顺序上,没有优先级要求,不同芯片设计厂商设计的芯片其引导程序执行的功能会有差异。
图3中执行的引导程序和用户程序,均由同一个CPU完成,即引导程序与用户程序使用同一套指令系统。由于该指令系统的公开性,若芯片攻击者芯片攻击者得到引导程序的机器码,则可根据公开资料,分析出芯片详细的引导过程,其中涉及系统关键寄存器、调试协议、配置数据等芯片敏感信息,这些信息通常是芯片设计厂商需要保护的内容。进而威胁芯片安全。
实施例一
本发明的一种安全芯片的结构形式如图4所示。芯片200中包含常见模块外,还包含第一中央处理单元CPUS260和第二中央处理单元CPU201。CPUS260内部结构与CPU101的内部结构相似,CPUS与CPU相比可能位数少,ALU复杂度低,寄存器数量少。CPUS260用于执行引导程序,引导程序的功能包括但不限于这些程序:配置时钟频率、设置电压修调参数、配置系统控制寄存器、配置调试模块、配置外设模块、配置IO、配置系统安全设置等基本功能。CPUS260耦接至CPU201,CPUS260执行引导程序完毕后,指示第二CPU201进行工作。第二CPU201执行与用户程序相关的功能。为保证引导程序和用户程序分离,第二CPU201不允许执行引导程序。
CPUS260中执行的引导信息是不希望被芯片攻击者获知的,而第二CPU201中存在芯片攻击者可以获取的用户指令信息。为降低由第二CPU201获得引导信息的可能性,因此,在安全芯片中,CPUS260执行完成引导程序后,指示第二CPU201进行工作,并不允许第二CPU201访问安全CPUS260的信息。
更进一步的,芯片设计厂商可以将CPU201和CPUS260作为独立的处理器来执行不同要求的指令,因此CPUS260和第二CPU201可以使用不同的指令系统。图6中,CPU201和CPUS260均为16bit的处理器,两者的累加运算使用不同的指令形式。CPU201的累加指令为ADD R0,#3,其指令系统对应的机器码为0011000000000011;CPUS260的累加指令为ADD#3,R0,其指令系统对应的机器码为0110001000110000。由此可见CPU201的指令格式为助记符+寄存器地址+数据,而CPUS260的指令格式为助记符+数据+寄存器地址。由于用户在多数情况下不需要了解CPUS260执行的引导程序,因此不需要公开CPUS260的指令系统。从而避免芯片信息被泄露。由于CPUS260和第二CPU201使用不同的指令系统工作,也进一步使得第二CPU201无法访问安全CPUS260的信息。
安全芯片中安全CPUS260执行的引导程序包括配置时钟频率、设置电压修调参数、配置系统控制寄存器、配置调试模块、配置外设模块、配置IO、安全中的一项或多项。
由于安全CPUS260完成的功能不需要公开给开发人员,也不影响其进行正常的设计开发,因此包括指令系统在内的相关信息不需要公开,底层硬件安全性大大提升。
由于此安全CPUS260执行的功能单一,架构和指令系统可以不采用复杂的设计,因此不会给芯片增加过高的开销。图5中列出的芯片内部需要进行的所有过程,由两个CPU协作完成,CPUS260执行引导程序,CPU201执行用户程序,即引导程序与用户程序使用不同指令系统。由于引导程序涉及到的过程用户不需要了解,因此CPUS260的架构和指令系统不需要公开。这样,即使芯片攻击者得到了引导程序的机器码,由于缺乏相关资料,将很难分析出底层硬件的敏感信息,芯片的安全性得到提高。
实施例二
本发明的另一种安全芯片的结构形式如图7所示。安全芯片中包含两个以上CPU,至少可以分为两类CPU。第一类的安全中央处理单元360用于执行引导程序,第一类安全中央处理单元360可以包含多个安全CPUS分别用于执行不同的引导程序。第二类中央处理单元301用于执行用户程序,第二类中央处理单元可以包含多个CPU,分别用于执行用户程序。图7中,第一类安全中央处理单元360,进一步包含CPUS-A3601、CPUS-B3602,CPUS-C3603。第二类中央处理单元进一步包含CPU-A3011、CPU-B3012、CPU-C3013。为保证引导程序和用户程序分离,第二类中央处理单元301不允许执行引导程序。
第一类中央处理单元360中执行的引导信息是不希望被芯片攻击者获知的,而第二类中央处理单元中存在芯片攻击者可以获取的用户指令信息。为降低由第二类中央处理单元获得引导信息的可能性,因此,在安全芯片中,第一类中央处理单元360执行完成引导程序后,指示第二类中央处理单元301进行工作,并不再允许第二类中央处理单元301访问第一类中央处理单元360的信息。
更进一步的第一类中央处理单元360与第二类中央处理单元301的指令系统不同。第一类中央处理单元和第二中央处理单元使用不同的指令系统工作,也进一步使得第二类中央处理单元无法访问第一类中央处理单元的信息。
本发明所述的安全芯片并不局限为某一类芯片,还包括含有中央处理单元的MCU芯片、FPGA芯片、DSP芯片、SOC芯片等,本领域技术人员应可理解包含中央处理单元的芯片均可运用本发明的技术对芯片进行安全设计。
根据上文实施方式为本发明较佳实施例及所运用技术原理。本领域技术人员应理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说,能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括其他等效实施例。
Claims (10)
1.一种安全芯片,包含第一中央处理单元(CPUS)和第二中央处理单元(CPU),所述第一中央处理单元用于执行芯片引导程序,所述第二中央处理单元用于执行用户程序,所述第一中央处理单元执行完成引导程序后,指示第二中央处理单元执行用户程序,第二中央处理单元无法执行引导程序。
2.根据权利要求1所述的安全芯片,所述第二中央处理单元无法访问所述第一中央处理单元的电路。
3.根据权利要求2所述的安全芯片,所述第一中央处理单元与第二中央处理单元的指令系统不同。
4.根据权利要求4所述的安全芯片,所述芯片引导程序包括配置时钟频率、设置电压修调参数、配置系统控制寄存器、配置调试模块、配置外设模块、配置IO、配置系统安全设置中的一项或多项功能。
5.一种安全芯片,包含第一类中央处理单元和第二类中央处理单元,所述第一类中央处理单元用于执行芯片引导程序,所述第二类中央处理单元用于执行用户程序,所述第一类中央处理单元执行完成引导程序后,指示第二类中央处理单元执行用户程序,第二中央处理单元无法执行引导程序。
6.根据权利要求5所述的安全芯片,所述第二类中央处理单元无法访问所述第一类中央处理单元的电路。
7.根据权利要求6所述的安全芯片,所述第一类中央处理单元与第二类中央处理单元的指令系统不同。
8.根据权利要求7所述的安全芯片,所述第一类中央处理单元可以包含一个或多个中央处理单元。
9.根据权利要求7所述的安全芯片,所述第二类中央处理单元可以包含一个或多个中央处理单元。
10.根据权利要求7所述的安全芯片,所述芯片引导程序包括配置时钟频率、设置电压修调参数、配置系统控制寄存器、配置调试模块、配置外设模块、配置IO、配置系统安全设置中的一项或多项功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810958915.1A CN110858254A (zh) | 2018-08-22 | 2018-08-22 | 一种安全芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810958915.1A CN110858254A (zh) | 2018-08-22 | 2018-08-22 | 一种安全芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110858254A true CN110858254A (zh) | 2020-03-03 |
Family
ID=69636047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810958915.1A Pending CN110858254A (zh) | 2018-08-22 | 2018-08-22 | 一种安全芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110858254A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1047578A (zh) * | 1989-05-17 | 1990-12-05 | 国际商业机器公司 | 使cpu与和外面的数据处理装置交互作用的硬件隔离的方法和装置 |
CN101021794A (zh) * | 2006-05-25 | 2007-08-22 | 杭州晟元芯片技术有限公司 | 一种芯片上电后的程序引导方法 |
CN101770373A (zh) * | 2008-12-31 | 2010-07-07 | 广州市鸿芯微电子有限公司 | 自启动串行引导程序加载与读取系统及其方法 |
CN103761468A (zh) * | 2014-01-13 | 2014-04-30 | 金硕澳门离岸商业服务有限公司 | 具有双cpu的微型控制芯片 |
CN104932914A (zh) * | 2014-03-19 | 2015-09-23 | 日本电气株式会社 | 多cpu启动电路和多cpu启动方法 |
CN105278974A (zh) * | 2014-06-30 | 2016-01-27 | 深圳市中兴微电子技术有限公司 | 一种芯片启动方法及装置 |
CN107168744A (zh) * | 2017-05-22 | 2017-09-15 | 哈尔滨工程大学 | 用于数字信号处理器芯片文件加载的系统及方法 |
CN107656773A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种多核dsp启动方法 |
CN208848201U (zh) * | 2018-08-22 | 2019-05-10 | 北京芯愿景软件技术有限公司 | 一种安全芯片 |
-
2018
- 2018-08-22 CN CN201810958915.1A patent/CN110858254A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1047578A (zh) * | 1989-05-17 | 1990-12-05 | 国际商业机器公司 | 使cpu与和外面的数据处理装置交互作用的硬件隔离的方法和装置 |
CN101021794A (zh) * | 2006-05-25 | 2007-08-22 | 杭州晟元芯片技术有限公司 | 一种芯片上电后的程序引导方法 |
CN101770373A (zh) * | 2008-12-31 | 2010-07-07 | 广州市鸿芯微电子有限公司 | 自启动串行引导程序加载与读取系统及其方法 |
CN103761468A (zh) * | 2014-01-13 | 2014-04-30 | 金硕澳门离岸商业服务有限公司 | 具有双cpu的微型控制芯片 |
CN104932914A (zh) * | 2014-03-19 | 2015-09-23 | 日本电气株式会社 | 多cpu启动电路和多cpu启动方法 |
CN105278974A (zh) * | 2014-06-30 | 2016-01-27 | 深圳市中兴微电子技术有限公司 | 一种芯片启动方法及装置 |
CN107168744A (zh) * | 2017-05-22 | 2017-09-15 | 哈尔滨工程大学 | 用于数字信号处理器芯片文件加载的系统及方法 |
CN107656773A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种多核dsp启动方法 |
CN208848201U (zh) * | 2018-08-22 | 2019-05-10 | 北京芯愿景软件技术有限公司 | 一种安全芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9471785B2 (en) | Systems and methods for secure boot ROM patch | |
US5737631A (en) | Reprogrammable instruction set accelerator | |
US9652252B1 (en) | System and method for power based selection of boot images | |
US10970192B2 (en) | Debugging support unit for microprocessor | |
US20100257534A1 (en) | Hardware Multithreading Systems and Methods | |
CN101344899B (zh) | 一种片上系统的仿真测试方法及仿真测试系统 | |
WO2015057891A1 (en) | Multi-threaded low-level startup for system boot efficiency | |
US7010672B2 (en) | Digital processor with programmable breakpoint/watchpoint trigger generation circuit | |
CN111033630B (zh) | 具有mbist的多处理器内核设备 | |
US20080159010A1 (en) | Multi-use eFuse Macro | |
WO2008082455A1 (en) | Reconfiguring a secure system | |
JP2021521521A (ja) | プロセッサをデバッグする方法 | |
CN113535245A (zh) | 用于更快的启动过程的多处理器启动流程的方法、系统和设备 | |
US20020120801A1 (en) | Technique for capturing information | |
US7774758B2 (en) | Systems and methods for secure debugging and profiling of a computer system | |
US20040236929A1 (en) | Logic circuit and program for executing thereon | |
CN110858254A (zh) | 一种安全芯片 | |
CN208848201U (zh) | 一种安全芯片 | |
US7340561B2 (en) | Computer memory initialization | |
US6948086B2 (en) | Computer system | |
US10007553B2 (en) | Method for configuring an it system, corresponding computer program and it system | |
US11521698B2 (en) | Testing read-only memory using memory built-in self-test controller | |
Li et al. | Operating system support for shared-isa asymmetric multi-core architectures | |
Danek et al. | Increasing the level of abstraction in FPGA-based designs | |
CN117251221B (zh) | 微控制芯片及其管理方法、存储介质 |
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 |