静态随机存储器可编程门阵列芯片的加密装置及加密方法

文档序号:7508721阅读:181来源:国知局
专利名称:静态随机存储器可编程门阵列芯片的加密装置及加密方法
技术领域
本发明涉及一种基于静态随机存储器的可编程门阵列(SRAM FPGA)芯片的加密装置及其加密方法。
背景技术
随着半导体工艺的发展和结构的改进,可编程的FPGA芯片相对ASIC设计来说在设计周期和性价比上有很大的优势。因此,越来越多的系统级设计中已经考虑采用经济实用的FPGA芯片来作为系统的核心。基于SRAM的FPGA芯片在容量和速度上比基于FLASH和反熔丝工艺的FPGA芯片有很大优势,因而成为应用主流。FPGA芯片应用的推广也促使人们对于现在广泛使用的基于SRAM编程的FPGA的安全性越来越关心。
FPGA的常用攻击方法有克隆与复制,反工程,黑盒攻击等。芯片克隆是指芯片内容的原样复制,攻击者关心的是最终产品的复制。基于SRAM编程的FPGA在系统加电时,需由配置电路将存放在外部串行EPROM中的配置数据按照一定的配置时序写入到FPGA中。因此设计是最容易被复制的。如附图1所示,可以对FPGA的配置数据引脚进行监视来获取配置数据。利用获取的数据对其他FPGA进行配置,来对整个FPGA内部的设计进行克隆,从而达到复制产品的目的。这种方法比较简单且较容易实现。
反工程是指利用专业的工具对芯片的各金属连接层依次进行照相和剥离以得到芯片结构,从而获取设计的网表和电路图来制作和复制成为新的电路。这种攻击方法需要专业的人力和物力来实现,需要一定的成本和时间。但SRAM FPGA的实现结构使其对于专业的反工程保护能力很差。
黑盒攻击指通过对芯片输入所有可能的输入值,获取对应的输出值,得到系统设计的真值表来获取设计。这种方法对小型设计来说比较有效,可以成功的得到设计逻辑,但对于复杂的设计来说,穷举所有的设计输入需要大量的时间甚至不可能。
业界和FPGA器件生产厂家也意识到FPGA安全性的重要性,针对配置数据的保护,推出了一系列的解决方案,其主要思路是针对配置数据进行不可逆加密,在FPGA内置加密或解密电路。如附图2a所示,其中一种方案考虑采用将配置数据加密后写入到eprom(电可编程只读存储器)中,密钥预先写入FPGA中特定区域,由外部电池供电保持。上电后由解密电路读入加密配置数据,根据密钥解密后再进行配制。这种方法外部攻击者只能得到加密后的配置数据,只要无法得到密钥,就不能正确复制电路。但它显著的缺点就在于需要用户管理密钥,借助外部电池来记忆密钥容易造成密钥丢失和占用一定的PCB空间。
一种针对上述方法的改进方案如附图2b所示,每片FPGA芯片在出厂时内部固化一个唯一的密钥,使用时通过JTAG(连接测试行动小组)接口将配置数据传递给加密电路,加密电路根据芯片的密钥将配置数据加密后由内部配置电路写入到外部E2prom(电擦写可编程只读存储器)或FLASH(闪存)中。芯片在实际使用中,上电时由内部解密电路进行解密,对SRAM进行配制后,芯片正常工作。这种方案的优点是无需用户管理密钥,使用方便。但是,上述方案必须由FPGA厂商参与,使用时具有一定的便利性,但现阶段只在一些特定型号的FPGA中提供,导致用户选型的局限性。同时内部集成了加解密电路,造成成本过高。

发明内容
本发明所要解决的技术问题是提供一种基于静态随机存储器的可编程门阵列芯片的加密装置及其加密方法,克服现有技术的缺陷,降低加密成本,提高不同应用加密的灵活度,易于工程实现,从而对SRAM FPGA反工程和对易被获取的配置数据进行保护,达到保护基于静态随机存储器的可编程门阵列芯片产品和设计的目的。
为了解决上述技术问题,本发明提供一种基于静态随机存储器的可编程门阵列芯片的加密装置,包括一片FLASH FPGA芯片以及在FLASH FPGA芯片和SRAM FPGA芯片中实现的握手电路,所述握手电路保证系统的安全性,所述握手电路包括主方SRMA FPGA芯片中的随机系列发生器10、第一序列加密器20、比较器30以及从方FLASH FPGA芯片中的随机序列接收器40、第二序列加密器50和传输电路60;其中,随机系列发生器10用于系统上电时产生随机的二进制序列并分别输出给第一序列加密器20和随机序列接收器40;第一序列加密器20和第二序列加密器50用于接收传输的二进制序列,加密后分别传输给比较电路30和传输电路60;比较电路30用于比较接收到的加密序列是否一致,一致发出启动信号,启动被保护系统SRAM FPGA芯片,不一致系统不工作;随机序列接收器40用于接收主方发出的随机的二进制序列并输出给第二序列加密器50;传输电路60用于将第二序列加密器50加密后的序列进行串行传输到主方的比较电路30。
在上述方案中,所述随机系列发生器10采用m级线性反馈移位寄存器。
在上述方案中,第一序列加密器和第二序列加密器采用已有算法进行加密。
在上述方案中,第一序列加密器和第二序列加密器采用简化已有算法进行加密。
在上述方案中,第一序列加密器和第二序列加密器根据用户需求更换。
在上述方案中,所述随机序列接收器40和传输电路60采用串行方式进行收发数据。
本发明还提供一种基于静态随机存储器的可编程门阵列芯片的加密装置,包括一片FLASH FPGA芯片、在FLASH FPGA芯片和SRAM FPGA芯片中实现的握手电路以及所述FLASHFPGA芯片中将剩余逻辑用于实现系统功能中的部分低速逻辑,保证攻击者不能获取系统完整逻辑;所述握手电路保证系统的安全性,所述握手电路包括主方SRMA FPGA芯片中的随机系列发生器10、第一序列加密器20、比较器30以及从方FLASH FPGA芯片中的随机序列接收器40、第二序列加密器50和传输电路60,与上述方案相同。
在上述方案中,所述低速逻辑包括组合逻辑、接口逻辑。
本发明还提供一种基于静态随机存储器的可编程门阵列芯片的加密装置的加密方法包括以下步骤系统上电;b)SRAM FPGA中随机序列发生器工作,产生随机序列传送到FLASH FPGA中随机序列接受器和SRAM FPGA中的序列加密器;c)FLASH FPGA中第二序列加密器将传送过来的随机序列进行加密,产生不可逆的加密序列;d)SRAM FPGA的第一序列加密器将传送过来的随机序列进行加密,产生不可逆的加密序列传送到下一级比较电路中;e)FLASH FPGA中传输电路将加密后序列传输到SRAM FPGA中的比较电路;f)在SRAM FPGA的比较电路中比较传送来的加密序列是否一致?如果是,进行步骤700,如果否,进行步骤b);g)产生启动信号,启动SRAM内电路工作。
本发明增加一片FLASH FPGA芯片,在SRAM FPGA和FLASH FPGA之间的握手电路设计,降低了基于静态随机存储器的可编程门阵列芯片的加密成本,易于工程实现,同时,通过可更换的加密器,对于用户不同的安全需求有很好的支持,提高了灵活度;从而对SRAMFPGA反工程和对易被获取的配置数据进行保护,达到保护基于静态随机存储器的可编程门阵列芯片产品和设计的目的,同时可在FLASH FPGA中设置低速逻辑,增加了系统的安全性。


图1FPGA芯片克隆示意图,说明SRAM FPGA存在的安全隐患。
图2a为现有技术中内置解密电路的FPGA加密示意图;图2b为现有技术中内置加密、解密电路的FPGA加密示意图;
图3是本发明的加密装置组成结构图。
图4是本发明的加密装置的加密方法流程图。
具体实施例方式
基于FPGA的系统安全包含整个应用系统的安全,FPGA处理数据的安全,也包括对FPGA内部的设计电路和IP核的安全。本发明提出的方法主要考虑第三个方面,通过保护FPGA内部的设计和IP核,从而达到保护产品设计和知识产权的目的。
本发明在分析了不同种类设计芯片的安全等级的基础上提出了一种基于静态随机存储器的可编程门阵列芯片的加密装置及其加密方法,并可根据用户的安全需求,使用不同的加密器,采用不同的加密算法,以便用于不同的应用。
如表1所示,Actel公司给出了不同种类的设计芯片的安全等级,其中5代表安全级别最高,1代表安全级别最低。
表1设计芯片安全等级表

由表1可知,基于SRAM编程的FPGA安全性最低,为安全1级,代表除了配置数据存在安全性问题外,对其进行专业的反工程可能只需几个小时;而对于安全性最高的FLASH或反熔丝FPGA芯片来说,首先不存在加电配置的问题,而且进行反工程可能需要数年的时间。
因此,为了保证设计的安全性,可考虑采用借助FLASH FPGA的安全性来保证整个设计的安全性。针对SRAM FPGA中设计的安全性,本方法在SRAM FPGA和FLASH FPGA之间设计握手电路,只有握手通过,才启动SRAM FPGA内部逻辑的工作,这样攻击者即使获取SRAM FPGA的配置数据,由于不能与FLASH FPGA(基于闪存的现场可编程门阵列)中的握手电路协调产生启动信号,内部电路也不会工作,达到保护SRAMFPGA内部设计的目的。同时考虑到由于SRAM FPGA在速度和容量上有优势,可将系统核心的、高速的逻辑在SRAM FPGA中实现,而部分低速逻辑可以在FLASH FPGA中实现。通过合理分配和芯片选型同时可以达到充分利用芯片资源的目的。这样攻击者就不可能得到设计的全部内容,因而无法进行系统复制。进一步加强了系统的安全性。
下面参照附图详细说明本发明的技术方案。
如图3所示,基于静态随机存储器的可编程门阵列(SRAM FPGA)芯片的加密装置包括两部分,第一部分为新增的一片FLASH FPGA芯片以及在FLASH FPGA和SRAMFPGA中实现的握手电路。第二部分为在新增的该片FLASH FPGA芯片中,将剩余逻辑用于实现系统功能中的部分低速逻辑(由用户和系统电路决定)。
本发明通过在SRAM FPGA和FLASH FPGA之间设计握手电路来保护完整设计的安全性。FLASH FPGA的高安全性保证了整个系统逻辑的安全性,它可避免配置在内部的逻辑被攻击者获取。为了进一步保证整个设计的安全性,可将被加密电路系统(原配置在SRAM FPGA芯片中)逻辑分为高速逻辑和低速逻辑,分别配置在基于SRAM和FLASH的FPGA中,如附图3中所示。其中高速逻辑配置在SRAM FPGA中,低速逻辑配置在FLASH FPGA中。高速逻辑可以为高速数据通道,硬件算法实现等。低速逻辑可以为低速组合逻辑、接口逻辑等,一般逻辑量较小。实际中可以由设计人员进行划分,目的在于使攻击者不可能获取系统设计的完整逻辑,划分时候考虑合理使用两片FPGA的资源。也可以考虑不进行划分,只在FLASH FPGA中配置握手加密电路。
握手电路包括在主方SRMA FPGA中的随机系列发生器10、第一序列加密器20、比较器30以及从方FLASH FPGA中的随机序列接收器40、第二序列加密器50和传输电路60组成。
其中,随机系列发生器10用于系统上电时候产生随机的二进制序列并输出,它采用m级线性反馈移位寄存器(LFSR),m是产生随机数序列的位数,LFSR的优势在于随着m的增大,LFSR对FPGA内部逻辑资源的消耗量是线性增加的,而LFSR输出的最长序列周期却呈指数增长,这一点对实际应用来说是非常有利的。最长序列周期(2m-1)决定了攻击者获取完备序列的难度。实际应用中m可取32,64甚至128。这取决于用户在加密深度和FPGA内部逻辑资源消耗量的权衡上。
主从两方采用相同的序列加密器,分别为第一序列加密器20和第二序列加密器50,可根据实际应用选择序列加密器的加密算法。第一种选择可以考虑采用加密算法公开,借助私钥来进行加密的算法,如3DES,AES等。这些算法都经过实践的检验,破解难度极大。用户可根据自己的需要选择不同级别的加密算法,使用公开的、成熟的加密算法的便利性在于有很多现成的资料对这些算法的原理和实现都有很详尽的介绍。缺点就是由于实现相对复杂,难免占用一定的硬件资源。因此另一种选择可以针对现有算法进行简化,由于攻击者不知道改造后的加密算法,从而导致解密的难度增大,起到保护的作用。以上所述的第一序列加密器和第二序列加密器可根据用户要求进行替换,以满足不同的安全需求。
随机序列接收器40用于接收主方发出的随机的二进制序列并输出给第二序列加密器50。
传输电路60用于将第二序列加密器50加密后的序列进行串行传输到主方的比较电路30。
比较电路30用于比较接收到的加密序列是否一致,一致发出启动信号,启动被保护系统SRAM FPGA芯片,不一致系统不工作;随机序列接收器40和传输电路60采用串行方式进行收发,可减少占用FPGA引脚资源。用户采用现有技术或者可以自行设计。
握手电路通过主方(SRAM FPGA)的随机系列发生器10在系统上电时产生随机数序列传送到从方(FLASH FPGA)中由从方的随机序列接收器40接收,同时由主方的加密电路20进行加密传送到比较器30。从方通过序列加密器50将接收到的序列进行加密,然后由传输电路60传送到主方,主方通过比较器30接收从方传输过来的加密序列和主方已加密的结果进行比较。序列比较一致后,产生启动信号,启动被保护电路,否则被保护的配置在SRAM FPGA中系统不工作。上述加密装置的加密方法步骤参见图4。
如图4所示,一种基于静态随机存储器的可编程门阵列芯片的加密装置的加密方法包括以下步骤步骤100,系统上电;步骤200,SRAM FPGA中随机序列发生器工作,产生随机序列传送到FLASH FPGA中随机序列接受器和SRAM FPGA中的序列加密器;步骤300,FLASH FPGA中第二序列加密器将传送过来的随机序列进行加密,产生不可逆的加密序列;步骤400,SRAM FPGA的第一序列加密器将传送过来的随机序列进行加密,产生不可逆的加密序列传送到下一级比较电路中;步骤500,FLASH FPGA中传输电路将加密后序列传输到SRAM FPGA中的比较电路;步骤600,在SRAM FPGA的比较电路中比较传送来的加密序列是否一致?如果是,进行步骤700,如果否,进行步骤200;步骤700,产生启动信号,启动SRAM内电路工作。
综上所述,本发明提供的方法适合应用于所有基于SRAM FPGA的应用系统,能对系统设计和产品的知识产权进行保护。本发明占用较少硬件资源,但可获得较高程度的安全性能,工程实现也相对便利。实践证明,该方法能有效降低成本,便于实现并获得很好的安全性。同时该方法能采用不同安全要求的加密算法来满足用户需求,便于灵活选择。
最后应说明的是以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种静态随机存储器的可编程门阵列芯片的加密装置,其特征在于,包括一片FLASH FPGA芯片以及在FLASH FPGA芯片和SRAM FPGA芯片中实现的握手电路,所述握手电路保证系统的安全性,所述握手电路包括主方SRMA FPGA芯片中的随机系列发生器10、第一序列加密器20、比较器30以及从方FLASH FPGA芯片中的随机序列接收器40、第二序列加密器50和传输电路60;其中,随机系列发生器10用于系统上电时产生随机的二进制序列并分别输出给第一序列加密器20和随机序列接收器40;第一序列加密器20和第二序列加密器50用于接收传输的二进制序列,加密后分别传输给比较电路30和传输电路60;比较电路30用于比较接收到的加密序列是否一致,一致发出启动信号,启动被保护系统SRAM FPGA芯片,不一致系统不工作;随机序列接收器40用于接收主方发出的随机的二进制序列并输出给第二序列加密器50;传输电路60用于将第二序列加密器50加密后的序列进行串行传输到主方的比较电路30。
2.如权利要求1所述的静态随机存储器的可编程门阵列芯片的加密装置,其特征在于,所述随机系列发生器10采用m级线性反馈移位寄存器。
3.如权利要求1所述的静态随机存储器的可编程门阵列芯片的加密装置,其特征在于,第一序列加密器和第二序列加密器采用已有算法进行加密。
4.如权利要求1所述的静态随机存储器的可编程门阵列芯片的加密装置,其特征在于,第一序列加密器和第二序列加密器采用简化已有算法进行加密。
5.如权利要求1所述的静态随机存储器的可编程门阵列芯片的加密装置,其特征在于,第一序列加密器和第二序列加密器根据用户需求更换。
6.如权利要求1所述的静态随机存储器的可编程门阵列芯片的加密装置,其特征在于,所述随机序列接收器40和传输电路60采用串行方式进行收发数据。
7.一种静态随机存储器的可编程门阵列芯片的加密装置,其特征在于,包括一片FLASH FPGA芯片、在FLASH FPGA芯片和SRAM FPGA芯片中实现的握手电路以及所述FLASHFPGA芯片中将剩余逻辑用于实现系统功能中的部分低速逻辑,保证攻击者不能获取系统完整逻辑;所述握手电路保证系统的安全性,所述握手电路包括主方SRMA FPGA芯片中的随机系列发生器10、第一序列加密器20、比较器30以及从方FLASH FPGA芯片中的随机序列接收器40、第二序列加密器50和传输电路60;其中,随机系列发生器10用于系统上电时产生随机的二进制序列并分别输出给第一序列加密器20和随机序列接收器40;第一序列加密器20和第二序列加密器50用于接收传输的二进制序列,加密后分别传输给比较电路30和传输电路60;比较电路30用于比较接收到的加密序列是否一致,一致发出启动信号,启动被保护系统SRAM FPGA芯片,不一致系统不工作;随机序列接收器40用于接收主方发出的随机的二进制序列并输出给第二序列加密器50;传输电路60用于将第二序列加密器50加密后的序列进行串行传输到主方的比较电路30。
8.如权利要求7所述的静态随机存储器的可编程门阵列芯片的加密装置,其特征在于,所述低速逻辑包括组合逻辑、接口逻辑。
9.一种应用权利要求1或7所述的静态随机存储器的可编程门阵列芯片的加密装置,进行加密的方法,其特征在于,包括以下步骤a)系统上电;b)SRAM FPGA中随机序列发生器工作,产生随机序列传送到FLASH FPGA中随机序列接受器和SRAM FPGA中的序列加密器;c)FLASH FPGA中第二序列加密器将传送过来的随机序列进行加密,产生不可逆的加密序列;d)SRAM FPGA的第一序列加密器将传送过来的随机序列进行加密,产生不可逆的加密序列传送到下一级比较电路中;e)FLASH FPGA中传输电路将加密后序列传输到SRAM FPGA中的比较电路;f)在SRAM FPGA的比较电路中比较传送来的加密序列是否一致?如果是,进行步骤700,如果否,进行步骤b);g)产生启动信号,启动SRAM内电路工作。
全文摘要
本发明公开了一种基于静态随机存储器的可编程门阵列芯片的加密装置及其加密方法,本发明中的加密装置包括一片FLASH FPGA芯片以及在FLASH FPGA和SRAMFPGA中实现的握手电路以及在FLASH FPGA芯片中,将剩余逻辑用于实现系统功能中的部分低速逻辑(由用户和系统电路决定),以进一步提高系统的安全性。本发明通过在SRAM FPGA和FLASH FPGA之间的握手电路设计,降低了基于静态随机存储器的可编程门阵列芯片的加密成本,易于工程实现,同时,通过可更换的加密器,对于用户不同的安全需求有很好的支持,提高了灵活度;从而对SRAM FPGA反工程和对易被获取的配置数据进行保护,达到保护基于静态随机存储器的可编程门阵列芯片产品和设计的目的。
文档编号H03K19/177GK1828558SQ20051005144
公开日2006年9月6日 申请日期2005年3月4日 优先权日2005年3月4日
发明者蔡晔, 郑为民 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1