一种配置数据流安全性高的可编程逻辑器的制造方法

文档序号:8299378阅读:315来源:国知局
一种配置数据流安全性高的可编程逻辑器的制造方法
【技术领域】
[0001]本发明属于可编程逻辑器技术领域,具体涉及一种包含片内非挥发存储器以提高配置数据流安全性的可编程逻辑器。
【背景技术】
[0002]可编程逻辑器(Programmable Logic Device, PLD)包括现场可编程门阵列(Field Programmable Gate Array, FPGA)和复杂可编程逻辑器件(Complex ProgrammableLogic Device, CPLD)等,是一种众所周知的电子信息器件。它可以实现任何数字电路功能,设计者只需将设计仿真验证之后,编译成配置数据流,再将配置数据流加载到可编程逻辑器上,就可以在不修改硬件的情况下,快速实现设计方案。随着可编程逻辑器越来越多地应用于关键领域,基于可编程逻辑器的系统的安全性问题变得严峻。
[0003]在PLD中,最为关键的是配置数据流的安全性。配置数据流,也叫配置文件,它是PLD底层结构的镜像。配置数据流体现着系统设计者的知识产权和用户的敏感数据,对配置数据流的窃取可以直接复制整个系统,对配置数据流的篡改可以破坏整个系统。因此,配置数据流通常会成为黑客攻击者的首要目标,对配置数据流在存储和使用中提供高安全保护成为PLD安全的首要任务。
[0004]现有技术中,为了保护配置数据流不被窃取和恶意加载,采取了诸如加密、认证等多项技术。以FPGA为例,图1给出了目前主流的基于SRAM的挥发式FPGA中的结构及采取的安全措施,例如 Xilinx 的 Virtex II (参考文献:“Virtex_II Family Overview”,Datasheet, Xilinx website.)。其中系统设计者主机130上设计编译好的配置数据流,存储在片外的非挥发配置存储器120中,为了安全起见,该配置数据流可以加密后的形式存储。在FPGA器件110中,包括基于SRAM配置层的FPGA阵列111、解密等安全电路112、挥发式的密钥存储器113。其中113主要是基于SRAM的,因为其无法在断电后保持数据,所以还需要一个电池140模块来维持供电。系统上电时,配置数据流从120模块进入FPGA器件110内,通过解密等安全电路112利用113模块中存储的密钥进行解密,加载到111模块中的SRAM配置层,完成配置,之后FPGA开始工作。
[0005]在这种结构中,一种面临的风险是配置数据流从片外非挥发配置存储器传输到片内SRAM配置层的过程中,攻击者可以通过探测连接处的信号来拦截窃取数据流,或者注入假的数据流来将系统篡改成错误的功能。另一种风险是,采取了加密措施后,密钥存储在片上的挥发存储器113中,用以供电的电池140引入了额外的风险,攻击者可以移除电池,将密钥擦除,从而破坏系统。
[0006]另一种现有技术如图2所示,主要部分跟图1的技术相同,只是片内的密钥存储采取了一次编程的非挥发密钥存储213,例如在Altera的高端产品Stratix II (参考:aStratix II Device Handbook”,Datasheet, Altera website.)中米用了只能一次编程的非易失存储器作为片内密钥存储。尽管可以消除了供电电池以及它所带来的安全风险,但是这种结构仍然面临接口处的拦截风险,同时由于它出于集成制造的可行性和成本考虑,采取了一次编程的非易失存储器作为密钥存储,无法更新数据,在重配置过程中可能面临重播攻击O^play attack)风险,即攻击者从接口处拦截到旧版本的配置数据流,可以发送给FPGA器件210,即使该配置数据流是加密的,因为片内的密钥和认证标签不能更新,攻击者手中的旧版本仍然能够配置FPGA器件。假如此时的系统已经更新版本并修改过之前的安全隐患,那么此时攻击者发送的旧版本就会带来安全威胁,尤其是在一些需要远程重配置的领域,例如航天及军用系统中。同时,一次编程的非挥发存储器无法进行真正的测试,其良率会较低,进而带来整体FPGA器件良率的降低。
[0007]另一种现有技术,是基于非挥发存储器(non-volatile memory, NVM)作为配置层的FPGA,如图3所示,FPGA器件310包括基于非挥发配置层的FPGA阵列311、解密等安全电路312,以及非挥发式密钥存储器313。在这种结构中,配置数据流直接从系统设计者主机330进入可编程逻辑器,加载到311模块的非挥发配置层中,因而不需要片外非挥发存储器来存储配置数据流。如果为了提高安全性,330模块将配置数据流进行了加密,则需要安全解密电路312利用313中的密钥,对配置数据流进行解密之后,再加载到311模块中的非挥发配置层。目前基于这种结构的主要是基于Flash和Antifuse的非挥发FPGA,例如基于Flash 的 Actel ProASIC3 系列、Actel Fus1n 系列,基于 Antifuse 的 Actel Axcelerator系列(参考:Actel: http://www.actel.com/.)等。在这种结构中,配置数据流直接存储在片内的非挥发配置层中,不需外部非挥发存储器,能够降低外部接口处的探测攻击风险。但是Flash工艺复杂,跟FPGA逻辑部分的兼容性差,制造成本大大提高。而Antifuse是一次编程存储器,无法进行多次配置更新,另外,Antifuse的一次编程性使得难以进行制造测试以检测所有可能的故障,使得编程后良率下降。并且,在这些基于非挥发配置层例如Flash和Antifuse的可编程逻辑器中,解密后的数据直接存储在每个配置点的Flash和Antifuse上,因此存在针对这些NVM的直接入侵式物理攻击的风险,例如采用反向工程直接解剖配置单元内部的非挥发存储点。
[0008]随着新型存储器的发展,出现了一些跟逻辑工艺兼容性更好的新型非挥发存储器,使得在FPGA片内集成较多NVM,从成本角度和可制造性角度变得可行。尤其是电阻式随机存储器,具有更好的CMOS工艺兼容性、更低的操作电压、更高的集成密度等,具有多次编程能力,为配置数据流存储提供了更多选择。因此,有必要提出一种采用基于逻辑工艺的新型非挥发存储器作为片内配置数据流存储,以提高配置数据流存储和传递安全性的方法。

【发明内容】

[0009]本发明的目的在于提出一种可提高配置数据流在存储及传递过程中安全性的可编程逻辑器。
[0010]本发明提出的可编程逻辑器,是一种基于逻辑工艺兼容的非挥发存储器,作为片内配置数据流存储、安全机制控制所需的密钥和标签等关键信息存储的可编程逻辑器,其中所述的非挥发存储器,特别包含电阻式随机存储器(Resistive random access memory,RRAM)ο
[0011]本发明提出的可编程逻辑器,其结构框图如图4所示。该可编程逻辑器410包括:基于SRAM配置层的可编程逻辑阵列411、非挥发片上存储器420、安全机制控制电路413、配置控制电路412,还可以包括其它模块。其中非挥发片上存储420可以分为多个分区,例如分区一 421、分区二 422、分区三423、其它分区425等,不同分区可以具有不同的安全需求,可以存储不同类别的数据;非挥发片上存储420还包括一写保护电路424,该写保护电路424可以针对不同分区提供不同的写保护控制策略;外部的系统设计者主机430,通过接口模块440,与可编程逻辑器件410进行通信。
[0012]本发明中,所述非挥发片上存储器420的不同分区可以分别为配置数据流存储区、密钥存储区、认证标签存储区等。
[0013]本发明中,所述非挥发片上存储器420上的写保护电路模块,可以对不同分区提供不同的安全保护机制,包括:对配置数据流存储区提供外部系统设计者主机对其有条件地改写的权限,对密钥存储区提供一次编程保护或者允许内部安全机制控制电路对其进行有条件地写入的权限,对认证标签存储区提供允许外部系统设计者主机和内部安全机制控制电路有条件地写入的权限,等等。
[0014]本发明中,所述的非挥发片上存储器420,特别包含电阻式随机存储器等可以跟逻辑工艺兼容的非挥发存储器。
[0015]本发明中,所述的接口模块440,是外部系统设计者主机430和可编程逻辑器410进行数据通信的接口,具体可以是JTAG接口。
[0016]本发明中,所述的非挥发片上存储器,其分区数量根据具体情况可以不同。
[0017]本发明中,所述的安全机制控制电路413,根据所采取的具体安全机制的不同,可以包括不同种类的解密运算电路,可以包括不同种类的认证电路,可以包括不同种类的器件序列号运算电路,等等。
[0018]本发明中,所述的配置控制电路412可以在片内,也可以是片外模块。
[0019]该可编程逻辑器在系统上电工作时,配置控制电路412启动配置过程,启动安全机制控制电路413,对非挥发片上存储器中的配置数据流存储区进行读取,并进行安全机制操作(例如包括解密操作),其中所需的密钥从非挥发片上存储器的某一分区进行读取,例如可以是分区三。经过安全机制控制操作(例如解密操作)之后的配置数据流可以加载到可编程逻辑阵列411的SRAM配置层,完成配置,可编程逻辑器开始工作。
[0020]该可编程逻辑器在系统重配置(包括第一次配置)时,系统设计者主机430可将设计编译的配置数据流,进行加密,然后通过接口模块440传递进可编程逻辑器410,通过安全机制控制电路413所采取的安全机制进行操作,例如可以包括版本一致性认证机制等,其中安全机制所需的敏感数据包括认证标签等都存储在非挥发片上存储器420的某个分区内,例如可以是分区二。认证通过之后,可将加密后配置数据流写入非挥发片上存储器内的对应分区进行存储,例如可以是分区一。如果认证不通过,则可编程逻辑器拒绝配置数据流从外部载入。所述的安全认证机制操作,可以包括将片内存储的认证标签跟系统设计者主机随配置流发送的标签进行比较,或者进行其他更复杂的运算,也可以包括根据具体的认证机制对片内存储的认证标签进行更新。
[0021]本发明的效果是,能提供配置数据流多方面的安全性:
第一,配置数据流存储在可编程逻辑器片内的非挥
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1