CN106682535A - 系统级芯片 - Google Patents
系统级芯片 Download PDFInfo
- Publication number
- CN106682535A CN106682535A CN201710155461.XA CN201710155461A CN106682535A CN 106682535 A CN106682535 A CN 106682535A CN 201710155461 A CN201710155461 A CN 201710155461A CN 106682535 A CN106682535 A CN 106682535A
- Authority
- CN
- China
- Prior art keywords
- cpu
- fpga
- encrypting
- data
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 59
- 238000013507 mapping Methods 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 7
- 238000004891 communication Methods 0.000 claims description 22
- 230000005055 memory storage Effects 0.000 claims description 12
- 238000000034 method Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 230000036651 mood Effects 0.000 description 7
- 230000004913 activation Effects 0.000 description 3
- 238000005336 cracking Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 238000002161 passivation Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/76—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 in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- 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/602—Providing cryptographic facilities or services
-
- 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/72—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 in cryptographic circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种系统级芯片(SoC),包括:中央处理器(CPU);现场可编程门阵列(FPGA),其中设有加密/解密模块,CPU通过系统总线连接到所述加密/解密模块;以及片上存储器,其通过系统总线连接到所述加密/解密模块并且其中存储有预设的加密和/或不加密的系统程序和执行所述系统程序所需的数据。所述加密/解密模块:在系统程序和/或数据以预定的地址映射关系存储于片上存储器中时,将CPU发送的地址解密为系统程序和/或数据在片上存储器中的实际地址;并且/或者在系统程序和/或数据是加密的时,对CPU经由FPGA从片上存储器读取的系统程序和/或数据进行解密,以及对从CPU经由FPGA传输到片上存储器的数据进行加密。
Description
技术领域
本发明涉及集成电路领域,尤其涉及一种系统级芯片(SOC)。
背景技术
微控制单元(Microcontroller Unit;MCU)的破解方法包括已知的非侵入式攻击(Non-invasive attacks),如功耗分析(Power analysis)和噪声干扰(Glitching);侵入式攻击(Invasive attacks),如反向工程(Reverse engineering)和微探测分析(Microprobing);以及半侵入式攻击(Semi-invasive attacks)。半侵入式攻击和侵入式一样,它需要打开芯片的封装以接近芯片表面,但是钝化层(Passivation)还是完好的,因为这种方法不需要与内部连线进行电接触。半侵入式攻击介于非侵入式与侵入式之间,对硬件的安全是个巨大的威胁。它像侵入式一样高效,又像非侵入式一样廉价。
缺陷注入攻击法(Fault injection attacks)是一种实用而有效的MCU的破解方法,通过修改SRAM和EEPROM的内容,可改变芯片上任意单个MOS管的状态。这几乎可以不受限制地控制芯片的运行和外围保护部分。另一点是进行了数据保存期的实验,揭示了从已断电的SRAM和已擦除过的EPROM,EEPROM和闪存芯片中读出数据,从而得到MCU的实际运行代码。利用上述方法,现有的MCU芯片几乎没有不能破解,且代价并不很大。
为了防止MCU被破解,目前的解决方案是使用基于现场可编程门阵列(Field-Programmable Gate Array;FPGA)的MCU动态总线加密方法,这是一种利用FPGA配置数据的无规律性和FPGA的可编程性,实现一般MCU不能实现的动态变换总线定义和程序数据的加密方法,从而实现MCU的用户设计的安全。
动态加密技术的主要思路是:在程序看到的是虚地址,而虚地址对应的存储器的实地址由CPU程序运行时通过定制化的逻辑电路赋予。其原理如图1所示。举例来说,若CPU调用子程序CALL Function时,对应于同一个子程序调用,第一次调用的是真正的Function,实地址可能在1000H。而在第二次调用Function时,实地址可能是2000H,功能可能根本与Function不相同。因此可以通过连续表面调用同一个子程序Function,而实际则是分别调用几个不同的子程序来实现加密。至于虚地址映射到何处的实地址,可由编程者自己安排,故只需在调用前输出实地址的对应关系即可。这种软件与硬件相结合、虚地址与实地址相结合的加密方法使破解者即使获得源程序也极难分析出对应关系。
但是这种方法是利用CPU片外的FPGA来做动态加密,破解者依然在外部能够接触CPU破解后的程序和数据,依然存在被破解的安全隐患。
发明内容
为了解决现有技术中存在的上述问题,提出了本发明。本发明提供了一种系统级芯片(SoC:System-on-a-chip),来实现CPU系统内核级的动态加密运行。
根据本发明的第一方面,一种系统级芯片包括:中央处理器(CPU);现场可编程门阵列(FPGA),其中设有加密/解密模块,所述CPU通过系统总线连接到所述加密/解密模块;以及片上存储器,其通过系统总线连接到所述FPGA的所述加密/解密模块并且其中存储有预设的加密和/或不加密的系统程序和执行所述系统程序所需的数据;其中所述加密/解密模块执行如下的加密/解密操作:在所述系统程序和/或所述数据以预定的地址映射关系存储于所述片上存储器中的情况下,将所述CPU发送的地址解密为所述系统程序和/或所述数据在所述片上存储器中的实际地址;并且/或者在所述系统程序和/或所述数据是加密的情况下,对所述CPU经由所述FPGA从所述片上存储器读取的所述系统程序和/或所述数据进行解密,以及对从所述CPU经由所述FPGA传输到所述片上存储器的数据进行加密。
通过将CPU与FPGA集成在同一芯片上,使得程序和数据的加密/解密完全在SoC芯片内部实现,保证了解密后的的总线不暴露在芯片外部,使破解者不能在采用示波器、逻辑分析仪和MDU解密仪等分析工具分析解密后的总线数据从而破解程序源代码。
根据本发明的第二方面,一种系统级芯片包括:中央处理器(CPU);现场可编程门阵列(FPGA),其中设有加密/解密模块;片上存储器,其通过系统总线连接到所述FPGA的所述加密/解密模块并且其中存储有预设的加密和/或不加密的系统程序和执行所述系统程序所需的数据;以及第一多路选择开关(MUX)。所述第一MUX的第一输入/输出端(I/O_1)通过系统总线连接到所述CPU,第二输入/输出端(I/O_2)通过系统总线连接到所述片上存储器,第三输入/输出端(I/O_3)通过系统总线连接到所述FPGA的所述加密/解密模块。由所述第一MUX的通路选择控制端电平的值,来决定在所述MUX的第一输入/输出端(I/O_1)与所述第二输入/输出端(I/O_2)之间形成通路,还是在所述MUX的第一输入/输出端(I/O_1)与所述第三输入/输出端(I/O_3)之间形成通路。所述加密/解密模块执行如下的加密/解密操作:在所述系统程序和/或所述数据以预定的地址映射关系存储于所述片上存储器中的情况下,用于将所述CPU发送的地址解密为所述系统程序和/或所述数据在所述片上存储器中的实际地址;并且/或者在所述系统程序和/或所述数据是加密的情况下,对所述CPU经由所述FPGA从所述片上存储器读取的所述系统程序和/或所述数据进行解密,以及对从所述CPU经由所述FPGA传输到所述片上存储器的数据进行加密。
可选地,当系统运行到特定保护程序地址处并且/或者当系统程序判定满足预定条件时,所述通路选择控制电平的值被设定为预定值;或者所述通路选择控制电平的值由通过外部器件异步通信传递的信号来确定。
在根据本发明第二方面的系统级芯片中,通过设置第一MUX,在CPU与片上存储器之间提供了非加密/解密通道和加密/解密通道。当选通非加密/解密通道时CPU具有最好的性能。而加密/解密通道由于执行加密/解密操作以及FPGA绕线,可能产生延迟,CPU运行在加密/解密通道上,性能有所下降。因此,通过设置第一MUX,用户可以把性能高的代码选择通过非加密/加密通道运行,而关键安全性部分通过选择加密/解密通道运行,从而既可以保证运行效率又可以保障系统的安全性。
可选地,上述系统级芯片还可以包括:第二多路选择开关(MUX),以及用于连接外部存储器的系统接口。所述片上存储器与所述加密/解密模块之间的系统总线包括从所述FPGA向所述片上存储器输出地址和数据的第一信号线,所述片上存储器通过第一数据线连接到所述第二MUX的第一输入/输出端(I/O_4),所述第二MUX的第二输入/输出端(I/O_5)通过第二数据线连接到所述加密/解密模块,并且所述系统接口通过第二信号线连接到所述加密/解密模块并且通过第三数据线连接到所述MUX的第三输入/输出端(I/O_6),所述第二信号线用于从所述FPGA向外部存储器输出地址和数据。
由此,本发明的系统级芯片可以结合外部存储器使用,实现程序和/或数据的加密。
可选地,在上述系统级芯片中,所述加密模块可以包括多个子加密模块,不同的子加密模块执行不同的加密操作;并且所述FPGA还包括通信模块,所述通信模块分别与所述各个子加密模块连接、并且根据来自外部的信号或者来自所述CPU的指令激活所述多个子加密模块中的至少一个。
可选地,在上述系统级芯片中,所述FPGA中还可以设有计数器,所述计数器由所述CPU定时清零,一旦超时未清零,所述FPGA将停止一切操作而使所述CPU无法运行。
可选地,在上述系统级芯片中,还可以在所述FPGA中设有密码,所述CPU每经过预定时间就访问所述FPGA,以将所述密码与预定值相比较,如果所述比较的结果不一致则所述CPU破坏所述片上存储器的内容。
可选地,在上述系统级芯片中,所述FPGA还可以包括通信模块,所述CPU和所述通信模块从外部接收异步事件信号以触发所述加密/解密模块执行设定的加密/解密操作。由此,可以根据用户需要控制地址和/或程序/数据的加密/解密的时机,从而可以实现与时间纬度相结合的加密/解密,使得芯片系统更难被破解。
附图说明
图1示意性示出了现有技术中的MCU加密技术。
图2示意性示出了根据本发明的第一示例性实施例的系统级芯片。
图3示意性示出了根据本发明的第二示例性实施例的系统级芯片。
图4示意性示出了根据本发明的第三示例性实施例的系统级芯片。
图5示意性示出了根据本发明的第四示例性实施例的系统级芯片。
图6示意性示出了根据本发明的第五示例性实施例的系统级芯片。
图7示意性示出了根据本发明的第六示例性实施例的系统级芯片。
具体实施方式
为了便于更清楚地理解本发明,在下文中参考附图描述本发明的具体实施方式。应当理解附图是示意性的,并不限定本发明的保护范围,本发明的保护范围由所附权利要求书限定。
第一实施例
图2示意性示出了根据本发明的第一示例性实施例的系统级芯片(SoC)100。如图2所示,根据本发明第一示例性实施例的SoC 100包括:中央处理器(CPU)110;现场可编程门阵列(FPGA)120,其中设有加密/解密模块121,所述CPU 110通过系统总线连接到所述加密/解密模块121;以及片上存储器130,其通过系统总线连接到所述FPGA 120的加密/解密模块121,并且其中存储有预设的加密和/或不加密的系统程序和执行所述系统程序所需的数据。
所述加密/解密模块121:在所述系统程序和/或所述数据以预定的地址映射关系存储于片上存储器130中的情况下,用于将CPU 110发送的地址解密为所述系统程序和/或所述数据在片上存储器130中的实际地址;并且/或者在所述系统程序和/或所述数据是加密的情况下,对所述CPU 110经由FPGA 120从片上存储器130读取的所述系统程序和/或所述数据进行解密,以及对从CPU 110经由FPGA 120传输到片上存储器130的数据进行加密。
在下文中以举例的方式对加密/解密模块121的操作进行描述。
I、地址的解密
系统的运行过程:非加密的系统程序和数据以预定的地址映射关系存储于所述片上存储器中,所述预定的地址映射关系可以是由系统应用预先确定好的。一方面,CPU 110复位后发送虚地址(即,在程序看到的地址)到FPGA 120,FPGA 120根据CPU 110的指令通过加密/解密模块121,将CPU 110发送的虚地址转换成在片上存储器130中实际使用的实地址,然后将该实地址发送到片上存储器130,FPGA 120在所述实地址处得到所需的程序或数据并将其返回给CPU 110。CPU 110取得所需的程序或数据后运行。另一方面,CPU 110可以发送虚地址到FPGA 120,FPGA 120根据CPU 110的指令通过加密/解密模块121将所述虚地址变换成要在片上存储器130中实际使用的实地址,从而将来自CPU 110的数据对应于所述实地址写入到片上存储器130中。
以下举例说明上文中提及的预定的地址映射关系。例1,参考图1,在程序看到的是AHB上的虚地址addr,而虚地址addr对应的片上存储器130的实地址为addr3。那么虚地址addr与实地址addr3之间的地址映射关系可以为Ahb2_addr3=Ahb_addr+AddrOffset,AddrOffset可以由系统应用预先确定,不同子程序的虚地址和实地址之间可以具有不同的地址映射关系。
硬件描述语言:
parameter AddrOffset=32'h2000;
assign Ahb1=Ahb+AddrOffset;
例2,若CPU 110运行的程序以不同的虚地址调用子程序CALL Function1,CALLFunction2,CALL Function3等,但FPGA 120的加密/解密模块可以将上述不同的虚地址映射到相同的实地址。因此实现了表面上调用不同的子程序,但实际上是调用同一个子程序Function。
硬件描述语言
实地址Ahb1根据变量Mode加上不同的偏移量。这个变量可以是CPU 110写给FPGA120的加密/解密模块121,也可以是外部或内部异步触发写到加密/解密模块121和CPU110。这种方式也可以用于上述例1。对于例2来说,AHB上的虚地址是不同的,与偏移量AddrOffset相加后变成了相同的实地址Ahb1。
例3:虚地址与实地址映射成位关系。
如assign Ahb1={Ahb[31:4],Ahb[0],Ahb[1],Ahb[2],Ahb[3]};则程序在片上存储器130中以0到15逆序存放。
II、程序/数据的加密/解密
程序运行过程:加密的程序和数据(也称为虚数据)存放在片上存储器130中。一方面,CPU 110复位后发送地址到FPGA 120中的加密/解密模块121,加密/解密模块121从该地址得到所述加密的程序或数据,加密/解密模块121将所述加密的程序或数据解密后送回给CPU 110。另一方面,CPU 110将实数据(未加密的程序和数据)经发送到加密/解密模块121,加密/解密模块121对所述实数据进行加密后将其送到片上存储器130的对应地址处。
例如,虚数据与实数据以如下方式映射成位关系。
应当理解,上述地址以及程序和数据的加密方式仅仅是示例性的,本领域技术人员可以采用任何合适的加密方法。
本发明的该实施例将CPU与FPGA集成在同一芯片上,使得程序和数据的加解密完全在SoC芯片内部实现,保证了解密后的总线不暴露在芯片外部,使破解者不能在采用示波器、逻辑分析仪和MDU解密仪等分析工具分析解密后的总线数据从而破解程序源代码。
第二实施例
图3示意性示出了根据本发明的第二示例性实施例的系统级芯片(SoC)200。如图3所示,根据本发明第二示例性实施例的SoC 200包括:CPU 210;FPGA 220,其中设有加密/解密模块221;片上存储器230,其中存储有预设的加密和/或不加密的系统程序和执行所述系统程序所需的数据,并且通过系统总线连接到所述FPGA 220中的所述加密/解密模块221;以及第一多路选择开关(MUX)240。所述第一MUX 240的第一输入/输出端I/O_1通过系统总线连接到所述CPU210,第二输入/输出端I/O_2通过系统总线连接到所述片上存储器230,第三输入/输出端I/O_3通过系统总线连接到所述FPGA 220的所述加密/解密模块221。加密/解密模块221的操作与图2中所示的加密/解密模块121的操作相同,因此在此不再重复。
由第一MUX 240的通路选择控制端电平的值,来决定在MUX 240的第一输入/输出端I/O_1与第二输入/输出端I/O_2之间形成通路,还是在MUX 240的第一输入/输出端I/O_1与第三输入/输出端I/O_3之间形成通路。
所述加密/解密模块221:在所述系统程序和/或所述数据以预定的地址映射关系存储于片上存储器230中的情况下,用于将CPU 210发送的地址解密为所述系统程序和/或所述数据在片上存储器230中的实际地址;并且/或者在所述系统程序和/或所述数据是加密的情况下,对CPU 210经由FPGA 220从片上存储器230读取的所述系统程序和/或所述数据进行解密,以及对从CPU 210经由FPGA 220传输到片上存储器230的数据进行加密。
当系统运行到特定保护程序地址处并且/或者当系统程序判定满足预定条件时,所述通路选择控制电平SEL的值被设定为预定值;或者所述通路选择控制电平SEL的值由通过外部器件异步通信传递的信号来确定。
第二示例性实施例的技术方案在第一示例性实施例的基础上增加了多路选择开关MUX 200,从而在CPU 210与片上存储器230之间提供了非加密通道CPU 210-AHB-AHB1-片上存储器230(即,在MUX 240的第一输入/输出端I/O_1与第二输入/输出端I/O_2之间形成通路时)和加密通道CPU 210-AHB-AHB2-FPGA 220-ABH3-片上存储器230(即,MUX 240的第一输入/输出端I/O_1与第三输入/输出端I/O_3之间形成通路时)。当选通非加密通道时系统具有最好的性能。当选通加密通道时,由于需要经过FPGA 220进行加密/解密处理以及FPGA本身的绕线,可能导致延迟,CPU 210运行在加密通道上时,性能可能有所下降。因此用户可以选择将对性能要求高的程序通过非加密通道进行处理,而将对安全性要求高的部分通过加密通道进行处理,由此提高整个芯片的运行效率。而这种选择可以通过改变MUX 240的通路选择控制电平SEL的值来实现。例如,当系统运行到特定保护程序地址处并且/或者当系统程序判定满足预定条件时,通路选择控制电平SEL的值被设定为预定值,从而仅在MUX 240的第一输入/输出端I/O_1与第二输入/输出端I/O_2之间形成通路(或者仅在MUX240的第一输入/输出端I/O_1与第三输入/输出端I/O_3之间形成通路);或者所述通路选择控制电平SEL的值由可以通过外部器件异步通信传递的信号来确定,从而实现仅在MUX 240的第一输入/输出端I/O_1与第二输入/输出端I/O_2之间形成通路(或者仅在MUX 240的第一输入/输出端I/O_1与第三输入/输出端I/O_3之间形成通路)。
第三实施例
图4示意性示出了根据本发明的第三示例性实施例的系统级芯片(SoC)300。图4中所示的SoC 300与图3中所示的SoC 200的区别在于,其还包括:第二多路选择开关(MUX)350,以及用于连接外部存储器的系统接口360。
片上存储器330与加密/解密模块321之间的系统总线包括从加密/解密模块321向片上存储器130输出地址和数据的第一信号线S1,片上存储器330通过第一数据线D1连接到第二MUX 350的第一输入/输出端I/O_4,第二MUX 350的第二输入/输出端I/O_5通过第二数据线D2连接到加密/解密模块321。系统接口360通过第二信号线S2连接到加密/解密模块321并且通过第三数据线D3连接到MUX 350的第三输入/输出端I/O_6,第二信号线S2用于从加密/解密模块321向外部存储器输出地址和数据。
通过增加第二MUX 350和系统接口360,加密/解密模块321在系统程序和/或数据以预定的地址映射关系存储于外部存储器中的情况下,能够将CPU 310发送的地址解密为所述系统程序和/或所述数据在外部存储器中的实际地址;并且/或者加密/解密模块321在所述系统程序和/或所述数据是加密的情况下,对CPU 310经由所述FPGA 320从外部存储器读取的所述系统程序和/或所述数据进行解密,以及对从CPU 310经由FPGA 320传输到外部存储器的数据进行加密。因此,外部存储器与芯片内部连接的总线上也是加密的数据。破解者拿到外部存储器的内容也没有用处。因此,根据本发明的SoC结合外部存储器使用,也能够实现加密。加密/解密模块321的操作与图2中所示的加密/解密模块121的操作相同,因此在此不再重复。
第四实施例
图5示意性示出了根据本发明的第四示例性实施例的系统级芯片(SoC)400。如图5所示,根据本发明第四示例性实施例的SoC 400包括:CPU 410、FPGA 420、片上存储器430、以及MUX 440。
图5所示的SoC 400与图3所示的SoC 200的区别仅在于:FPGA 420中的加密模块421包括多个子加密模块,不同的子加密模块可以采用不同的加密方式对来自所述CPU的指令进行加密;并且FPGA 420还包括通信模块422,所述通信模块422分别与所述各个子加密模块连接、并且能够根据来自外部的信号或者来自CPU 410的指令激活所述多个子加密模块中的一个或多个。例如,加密模块421可以包括2个子加密模块,分别用于如上文中在第一实施例中所述的地址解密和数据加密。用户可以根据需要,通过通信模块422从外部加载信号来选择所述2个子加密模块中的一个或多个。或者,通信模块422可以接收来自CPU 310的指令,以激活所述2个子加密模块中的一个或多个。
第五实施例
图6示意性示出了根据本发明的第五示例性实施例的系统级芯片(SoC)500。如图6所示,根据本发明第五示例性实施例的SoC 500包括:CPU 510、FPGA 520、片上存储器530、以及MUX 540。
图6所示的SoC 500与图3所示的SoC 200的区别仅在于:FPGA 520除了包括加密模块521之外,还设有计数器522,所述计数器522由CPU 510定时清零,一旦超时未清零,所述FPGA 520将停止一切操作而使CPU 510无法运行。
第六实施例
图7示意性示出了根据本发明的第六示例性实施例的系统级芯片(SoC)600。如图7所示,根据本发明第六示例性实施例的SoC 600包括:CPU 610、FPGA 620、片上存储器630、以及MUX 640。
图7所示的SoC 600与图3所示的SoC 200的区别仅在于:FPGA 620除了包括加密模块621之外,还设有通信模块622。通信模块622可以与CPU同步接收异步事件信号,以触发加密/解密模块621执行预设的加密/解密操作。这样,可以根据用户需要控制地址和/或程序/数据的加密/解密的时机,从而可以实现与时间纬度相结合的加密/解密,使得芯片系统更难被破解。
此外,本发明还可以在上述第一到第六实施例中任何一个的结构的基础上,在FPGA(120、220、320、420、520、620)中设有密码,CPU(110、210、310、410、510、610)每经过预定时间就访问FPGA(120、220、320、420、520、620),以将所述密码与预定值相比较,如果所述比较的结果不一致则CPU(110、210、310、410、510、610)破坏片上存储器(130、230、330、430、530、630)中存储的内容。
应该理解,尽管上文中分别示出和描述了本发明的各个实施例,但是应当理解,本领域技术人员可以根据需要将上述各个实施例或者其中的特征组合使用。例如,第一实施例中的加密模块121也可以包括多个子加密模块,FPGA 120也可以包括与所述多个子加密模块连接的通信模块,用来根据外部信号激活想要的子加密模块。或者,例如,第三实施例中的SoC 300也可以在FPGA 320中包括计数器,所述计数器由CPU 310定时清零,一旦超时未清零,所述FPGA 320将停止一切操作而使CPU 310无法运行。
虽然在用于示出上述各实施例的附图中,系统总线被标记为AHB总线,但是本发明并不限于此,实际上可以根据需要选择任何合适的系统总线,例如8051系统的扩展存储器接口总线(EMIF)、Wishbone和AXI等等。
尽管已经参照每一个所述示例性实施例的结构和操作描述了本发明,但是本发明不仅仅限于上述示例性实施例中的每一个。应当注意,本发明包括在不脱离本发明的范围的情况下本领域技术人员能够想到的各种变化和修改。此外,本发明包括相互并且适当地组合上述示例性实施例中每一个的结构的一部分或整个部分而获得的结构。
Claims (12)
1.一种系统级芯片(SoC),包括:
中央处理器(CPU);
现场可编程门阵列(FPGA),其中设有加密/解密模块,所述CPU通过系统总线连接到所述加密/解密模块;以及
片上存储器,其通过系统总线连接到所述FPGA的所述加密/解密模块并且其中存储有预设的加密和/或不加密的系统程序和执行所述系统程序所需的数据;其中
所述加密/解密模块执行如下的加密/解密操作:在所述系统程序和/或所述数据以预定的地址映射关系存储于所述片上存储器中的情况下,将所述CPU发送的地址解密为所述系统程序和/或所述数据在所述片上存储器中的实际地址;并且/或者在所述系统程序和/或所述数据是加密的情况下,对所述CPU经由所述FPGA从所述片上存储器读取的所述系统程序和/或所述数据进行解密,以及对从所述CPU经由所述FPGA传输到所述片上存储器的数据进行加密。
2.一种系统级芯片(SoC),包括:
中央处理器(CPU);
现场可编程门阵列(FPGA),其中设有加密/解密模块;
片上存储器,其通过系统总线连接到所述FPGA的所述加密/解密模块并且其中存储有预设的加密和/或不加密的系统程序和执行所述系统程序所需的数据;以及
第一多路选择开关(MUX),其中,
所述第一MUX的第一输入/输出端(I/O_1)通过系统总线连接到所述CPU,第二输入/输出端(I/O_2)通过系统总线连接到所述片上存储器,第三输入/输出端(I/O_3)通过系统总线连接到所述FPGA的所述加密/解密模块,
由所述第一MUX的通路选择控制端电平的值,来决定在所述MUX的第一输入/输出端(I/O_1)与所述第二输入/输出端(I/O_2)之间形成通路,还是在所述MUX的第一输入/输出端(I/O_1)与所述第三输入/输出端(I/O_3)之间形成通路,并且
所述加密/解密模块执行如下的加密/解密操作:在所述系统程序和/或所述数据以预定的地址映射关系存储于所述片上存储器中的情况下,用于将所述CPU发送的地址解密为所述系统程序和/或所述数据在所述片上存储器中的实际地址;并且/或者在所述系统程序和/或所述数据是加密的情况下,对所述CPU经由所述FPGA从所述片上存储器读取的所述系统程序和/或所述数据进行解密,以及对从所述CPU经由所述FPGA传输到所述片上存储器的数据进行加密。
3.根据权利要求2所述的系统级芯片(SoC),其中
当系统运行到特定保护程序地址处并且/或者当系统程序判定满足预定条件时,所述通路选择控制电平的值被设定为预定值;或者
所述通路选择控制电平的值由通过外部器件异步通信传递的信号来确定。
4.根据权利要求1-3中任一项所述的系统级芯片(SoC),还包括:
第二多路选择开关(MUX),以及
用于连接外部存储器的系统接口,其中,
所述片上存储器与所述加密/解密模块之间的系统总线包括从所述FPGA向所述片上存储器输出地址和数据的第一信号线,
所述片上存储器通过第一数据线连接到所述第二MUX的第一输入/输出端(I/O_4),
所述第二MUX的第二输入/输出端(I/O_5)通过第二数据线连接到所述加密/解密模块,并且
所述系统接口通过第二信号线连接到所述加密/解密模块并且通过第三数据线连接到所述MUX的第三输入/输出端(I/O_6),所述第二信号线用于从所述FPGA向外部存储器输出地址和数据。
5.根据权利要求1-3中任一项所述的系统级芯片(SoC),其中
所述加密模块包括多个子加密模块,不同的子加密模块执行不同的加密操作;并且
所述FPGA还包括通信模块,所述通信模块分别与所述各个子加密模块连接、并且根据来自外部的信号或者来自所述CPU的指令激活所述多个子加密模块中的至少一个。
6.根据权利要求4所述的系统级芯片(SoC),其中
所述加密模块包括多个子加密模块,不同的子加密模块执行不同的加密操作;并且
所述FPGA还包括通信模块,所述通信模块分别与所述各个子加密模块连接、并且根据来自外部的信号或者来自所述CPU的指令激活所述多个子加密模块中的至少一个。
7.根据权利要求1-3中任一项所述的系统级芯片(SoC),其中所述FPGA中还设有计数器,所述计数器由所述CPU定时清零,一旦超时未清零,所述FPGA将停止一切操作而使所述CPU无法运行。
8.根据权利要求4所述的系统级芯片(SoC),其中所述FPGA中还设有计数器,所述计数器由所述CPU定时清零,一旦超时未清零,所述FPGA将停止一切操作而使所述CPU无法运行。
9.根据权利要求1-3中任一项所述的系统级芯片(SoC),其中在所述FPGA中设有密码,所述CPU每经过预定时间就访问所述FPGA,以将所述密码与预定值相比较,如果所述比较的结果不一致则所述CPU破坏所述片上存储器的内容。
10.根据权利要求4所述的系统级芯片(SoC),其中在所述FPGA中设有密码,所述CPU每经过预定时间就访问所述FPGA,以将所述密码与预定值相比较,如果所述比较的结果不一致则所述CPU破坏所述片上存储器的内容。
11.根据权利要求1-3中任一项所述的系统级芯片(SoC),其中所述FPGA还包括通信模块,所述CPU和所述通信模块从外部接收异步事件信号以触发所述加密/解密模块执行设定的加密/解密操作。
12.根据权利要求4所述的系统级芯片(SoC),其中所述FPGA还包括通信模块,所述CPU和所述通信模块从外部接收异步事件信号以触发所述加密/解密模块执行设定的加密/解密操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710155461.XA CN106682535A (zh) | 2017-03-16 | 2017-03-16 | 系统级芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710155461.XA CN106682535A (zh) | 2017-03-16 | 2017-03-16 | 系统级芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106682535A true CN106682535A (zh) | 2017-05-17 |
Family
ID=58826123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710155461.XA Pending CN106682535A (zh) | 2017-03-16 | 2017-03-16 | 系统级芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106682535A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577965A (zh) * | 2017-09-27 | 2018-01-12 | 天津津航计算技术研究所 | 一种门延时差异的fpga加密方法 |
CN107634826A (zh) * | 2017-08-29 | 2018-01-26 | 北京三未信安科技发展有限公司 | 一种基于zynq器件的加密方法和系统 |
CN107749792A (zh) * | 2017-10-13 | 2018-03-02 | 郑州云海信息技术有限公司 | 实现数据加解密的方法、系统及计算机可读存储介质 |
CN107885626A (zh) * | 2017-11-03 | 2018-04-06 | 郑州云海信息技术有限公司 | 片上系统可编程器件的系统启动自检测的装置及方法 |
CN108228527A (zh) * | 2017-12-26 | 2018-06-29 | 北京中科睿芯科技有限公司 | 局部可编程复合安全芯片及制造方法 |
CN108280372A (zh) * | 2018-02-23 | 2018-07-13 | 深圳国微技术有限公司 | 一种安全芯片 |
CN109255258A (zh) * | 2018-08-27 | 2019-01-22 | 重庆天箭惯性科技股份有限公司 | 加密导航计算机电路 |
CN109271830A (zh) * | 2017-07-18 | 2019-01-25 | 义隆电子股份有限公司 | 指纹感测集成电路 |
CN109543423A (zh) * | 2018-11-05 | 2019-03-29 | 上海新时达电气股份有限公司 | 控制板加密和解密方式、终端设备及计算机可读存储介质 |
WO2019061271A1 (zh) * | 2017-09-29 | 2019-04-04 | 深圳大学 | 一种数据加密的加速方法和系统 |
CN111506934A (zh) * | 2019-01-30 | 2020-08-07 | 旺宏电子股份有限公司 | 具有安全功能的存储器芯片及存储器装置 |
CN116049910A (zh) * | 2023-02-01 | 2023-05-02 | 广东高云半导体科技股份有限公司 | 一种数据加密系统及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101014923A (zh) * | 2004-09-10 | 2007-08-08 | 国际商业机器公司 | 具有编程片内硬件的安全机制的用于加密和解密的集成电路芯片 |
US20070234072A1 (en) * | 2005-12-23 | 2007-10-04 | Nagracard S.A. | Secure system-on-chip |
CN101246743A (zh) * | 2007-02-14 | 2008-08-20 | 上海海尔集成电路有限公司 | 闪存接口 |
CN102520961A (zh) * | 2011-12-22 | 2012-06-27 | 福州大学 | 片外在线可编程的soc系统及其控制方法 |
CN104202161A (zh) * | 2014-08-06 | 2014-12-10 | 广东电网公司电力科学研究院 | 一种SoC密码芯片 |
CN104871169A (zh) * | 2012-12-06 | 2015-08-26 | 三星电子株式会社 | 执行安全启动的片上系统、使用该片上系统的图像形成装置及其方法 |
-
2017
- 2017-03-16 CN CN201710155461.XA patent/CN106682535A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101014923A (zh) * | 2004-09-10 | 2007-08-08 | 国际商业机器公司 | 具有编程片内硬件的安全机制的用于加密和解密的集成电路芯片 |
US20070234072A1 (en) * | 2005-12-23 | 2007-10-04 | Nagracard S.A. | Secure system-on-chip |
CN101246743A (zh) * | 2007-02-14 | 2008-08-20 | 上海海尔集成电路有限公司 | 闪存接口 |
CN102520961A (zh) * | 2011-12-22 | 2012-06-27 | 福州大学 | 片外在线可编程的soc系统及其控制方法 |
CN104871169A (zh) * | 2012-12-06 | 2015-08-26 | 三星电子株式会社 | 执行安全启动的片上系统、使用该片上系统的图像形成装置及其方法 |
CN104202161A (zh) * | 2014-08-06 | 2014-12-10 | 广东电网公司电力科学研究院 | 一种SoC密码芯片 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271830A (zh) * | 2017-07-18 | 2019-01-25 | 义隆电子股份有限公司 | 指纹感测集成电路 |
CN107634826B (zh) * | 2017-08-29 | 2020-06-05 | 北京三未信安科技发展有限公司 | 一种基于zynq器件的加密方法和系统 |
CN107634826A (zh) * | 2017-08-29 | 2018-01-26 | 北京三未信安科技发展有限公司 | 一种基于zynq器件的加密方法和系统 |
CN107577965A (zh) * | 2017-09-27 | 2018-01-12 | 天津津航计算技术研究所 | 一种门延时差异的fpga加密方法 |
CN107577965B (zh) * | 2017-09-27 | 2019-07-02 | 天津津航计算技术研究所 | 一种门延时差异的fpga加密方法 |
WO2019061271A1 (zh) * | 2017-09-29 | 2019-04-04 | 深圳大学 | 一种数据加密的加速方法和系统 |
CN107749792A (zh) * | 2017-10-13 | 2018-03-02 | 郑州云海信息技术有限公司 | 实现数据加解密的方法、系统及计算机可读存储介质 |
CN107885626A (zh) * | 2017-11-03 | 2018-04-06 | 郑州云海信息技术有限公司 | 片上系统可编程器件的系统启动自检测的装置及方法 |
CN108228527A (zh) * | 2017-12-26 | 2018-06-29 | 北京中科睿芯科技有限公司 | 局部可编程复合安全芯片及制造方法 |
CN108280372A (zh) * | 2018-02-23 | 2018-07-13 | 深圳国微技术有限公司 | 一种安全芯片 |
CN109255258A (zh) * | 2018-08-27 | 2019-01-22 | 重庆天箭惯性科技股份有限公司 | 加密导航计算机电路 |
CN109543423A (zh) * | 2018-11-05 | 2019-03-29 | 上海新时达电气股份有限公司 | 控制板加密和解密方式、终端设备及计算机可读存储介质 |
CN109543423B (zh) * | 2018-11-05 | 2021-07-23 | 上海新时达电气股份有限公司 | 控制板加密和解密方式、终端设备及计算机可读存储介质 |
CN111506934A (zh) * | 2019-01-30 | 2020-08-07 | 旺宏电子股份有限公司 | 具有安全功能的存储器芯片及存储器装置 |
CN111506934B (zh) * | 2019-01-30 | 2023-06-30 | 旺宏电子股份有限公司 | 具有安全功能的存储器芯片及存储器装置 |
CN116049910A (zh) * | 2023-02-01 | 2023-05-02 | 广东高云半导体科技股份有限公司 | 一种数据加密系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106682535A (zh) | 系统级芯片 | |
US8549630B2 (en) | Trojan-resistant bus architecture and methods | |
Müller et al. | {TRESOR} Runs Encryption Securely Outside {RAM} | |
Waksman et al. | Silencing hardware backdoors | |
Kuhn | Cipher instruction search attack on the bus-encryption security microcontroller DS5002FP | |
CN109582604A (zh) | 存储器完整性 | |
CN110210190A (zh) | 一种基于二次汇编的代码混淆方法 | |
CN103136458B (zh) | 一种Linux操作系统动态库代码保护方法及其装置 | |
Wang et al. | D-oram: Path-oram delegation for low execution interference on cloud servers with untrusted memory | |
CN103903043B (zh) | 一种智能卡三位一体抗侧信道攻击防护方法和系统 | |
CN101551784A (zh) | 一种usb接口的ata类存储设备中数据的加密方法及装置 | |
JP2008287706A (ja) | 情報セキュリティ装置、セキュリティシステム及び入力情報漏洩防止方法 | |
Zankl et al. | Side-channel attacks in the Internet of Things: threats and challenges | |
Liu et al. | Secure and durable (SEDURA) an integrated encryption and wear-leveling framework for PCM-based main memory | |
CN108959129B (zh) | 一种基于硬件的嵌入式系统机密性保护方法 | |
CN109325322B (zh) | 用于嵌入式平台的软件知识产权保护系统和方法 | |
Giner et al. | Scatter and split securely: Defeating cache contention and occupancy attacks | |
Blalock et al. | Is the new obsession with performance management masking the truth about social programs | |
Deng et al. | Evaluation of cache attacks on arm processors and secure caches | |
CN103984901A (zh) | 一种可信计算机系统及其应用方法 | |
CN105279106A (zh) | 一种可自毁的电子硬盘 | |
CN202110552U (zh) | 一种基于多体交叉存储技术的软件保护装置 | |
US10169616B1 (en) | Cryptographic processing of data and instructions stored off-chip | |
KR20180059217A (ko) | 메모리 데이터 보안 처리 장치 및 방법 | |
Patel et al. | Ensuring secure program execution in multiprocessor embedded systems: a case study |
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 |