一种fpga配置数据的加密系统及其加密方法

文档序号:6444177阅读:1294来源:国知局
专利名称:一种fpga配置数据的加密系统及其加密方法
技术领域
本发明属于FPGA配置领域,特别是一种FPGA配置数据的加密系统及其加密方法。
背景技术
现场可编程门阵列(Field-ProgrammableGate Array,FPGA)是在 PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。将FPGA设计程序送入FPGA芯片的过程或操作一般称为对FPGA器件的配置,经过配置的FPGA,即具有用户所需的功能。FPGA在正常工作状态下,其配置数据存储在FPGA的编程元件SRAM中,在每次上电时,需重新下载配置数据。配置数据一般是通过JTAG接口直接下载或从外部Flash加载到SRAM中运行,对于从外部Flash加载的方式,由于Flash本身无法加密,使得这类方式具有编程数据易失性的特性,因此对FPGA配置数据的加密保护是开发者面临的一个主要问题。目前,对FPGA配置数据的加密方法主要有以下几类1.选用自带加密功能的FPGA。例如,Xilinx公司的Virtex 2-5系列,其采用的是DES加密算法;Altera公司的Mratix II-III系列,其采用1 位密钥的高级加密算法(Advanced Encryption Mandard,AEQ。该两种加密算法的加密原理是配置数据被加载到Flash时被加密,在加载到FPGA内部SRAM时被还原。而第三方从Flash中拷出的配置数据是加了密的,无法复制使用。这种方法简单、实用,但加密成本高,使得大部分FPGA,特别是中、低档FPGA都不具备此类加密功能。2.外接加密芯片。采用存储器加密方式为FPGA提供安全控制和保护,其采用不可逆的HASH算法,具有极高的雪崩效应。在这种加密方式中,FPGA上电后,从引导存储器中读取配置数据,配置完成后,FPGA被启动并进行认证工作。该加密算法需要占用FPGA大量的逻辑资源,并且对加密芯片也有一定的要求,应用受到限制。

发明内容
针对现有FPGA配置数据的加密方法所存在的问题,本发明提出了一种可降低加密成本,占用FPGA资源较少,简单易用的FPGA配置数据的加密系统。本发明采用的技术手段如下一种FPGA配置数据的加密系统,其特征在于包括单片机;置于现场可编程门阵列中的加密单元,加密单元连接单片机和编程元件;连接编成元件的配置芯片;配置芯片将配置数据发送给编程元件,加密单元在编程元件接收到配置数据后控制单片机开始配置数据,同时现场可编程门阵列中的晶振开始计数,单片机在配置数据后发送高电平复位信号给现场可编程门阵列以控制晶振停止计数;之后加密单元发送一随机码给单片机,单片机对该随机码进行加密后发送给加密单元,加密单元同时对该随机码进行加密,将加密后的随机码与单片机加密后的随机码进行比对,若相同则控制编程元件中的配置数据开始执行,否则编程元件中的配置数据不执行。本发明的FPGA配置数据的加密系统相对于现有技术简单易行、保密性好、容易升级,适用于低成本的FPGA配置数据的加密,由于加密电路利用了外部单片机和FPGA内部分逻辑单元,因而没有增加过多的硬件成本。


图1为本发明的FPGA配置数据的加密系统原理图。图2为本发明的FPGA配置数据的加密系统结构图。图3为图2的加密方法流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。如图1所示,本发明的FPGA配置数据的加密系统包括单片机1 ;置于现场可编程门阵列中的加密单元2,加密单元2连接单片机1和编程元件;连接编成元件的配置芯片3。其中的编程元件1优选是SRAM,其中的配置芯片3优选是Flash。配置芯片3将配置数据发送给编程元件,加密单元2在编程元件接收到配置数据后控制单片机1开始配置数据,同时现场可编程门阵列中的晶振开始计数,单片机1在配置数据后发送高电平复位信号给现场可编程门阵列以控制晶振停止计数;之后加密单元2发送一随机码给单片机1,单片机1对该随机码进行加密后发送给加密单元2,加密单元2同时对该随机码进行加密,将加密后的随机码与单片机1加密后的随机码进行比对,若相同则控制编程元件中的配置数据开始执行,否则编程元件中的配置数据不执行。其中,单片机1对随机码的加密是为了保证随机码在传输过程的安全性,系统的加密能力主要取决于单片机1对随机码的加密能力,这就要求加密单元2生成的随机码的线性复杂度要足够高,以使得对单片机1加密后的随机码的捕获与识别足够困难。为了提高随机码的线性复杂度,本发明是利用了单片机1与现场可编程门阵列上电后配置数据所需时间的不同而实现的,利用现场可编程门阵列中的晶振对单片机1与现场可编程门阵列上电后配置数据所需时间的时间差进行计数,可反映出该时间上的微小误差。通过对上述随机码发生方式进行100次测试,结果显示每次产生的随机码均不同。本发明的单片机1优选采用线性反馈移位寄存器,对指定位抽取异或后循环移位η次的方式实现对随机码的加密,该方式构造简单,用户还可根据需要,改变线性反馈移位寄存器的抽取位数,则加寄存器阶数,以增加该种加密方式的安全性。如图2所示,单片机1包括加密模块11、加密输出模块12 ;加密单元2包括随机码发生器21、本地加密模块22、验证模块23。随机码发生器21产生一随机码并发送给加密模块11和本地加密模块22,加密模块11和本地加密模块22分别采用相同的加密算法对该随机码进行加密,加密输出模块12将加密模块11加密后的随机码发送给验证模块23,验证模块23将本地加密模块22加密后的随机码和加密输出模块12发送的加密后的随机码进行比对,若相同则向编程元件发送复位信号以控制编程元件中的配置数据开始执行。
如图3所示,本发明的上述FPGA配置数据的加密系统的加密方法包括以下步骤Sl 编程元件从配置芯片读取配置数据。S2 加密单元控制单片机开始配置数据,同时现场可编程门阵列中的晶振开始计数。S3:单片机配置数据后,利用高电平复位信号控制现场可编程门阵列中的晶振停止计数。S4 加密单元发送随机码,单片机对该随机码进行加密,同时现场可编程门阵列对该随机码进行本地加密。S5:加密单元对单片机加密后的随机码与现场可编程门阵列本地加密后的随机码比较,若相同,则编程元件中的配置数据开始执行,否则编程元件中的配置数据不执行。本发明的FPGA配置数据的加密系统相对于现有技术简单易行、保密性好、容易升级,适用于低成本的FPGA配置数据的加密,由于加密电路利用了外部单片机和FPGA内部分逻辑单元,因而没有增加过多的硬件成本。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
权利要求
1.一种FPGA配置数据的加密系统,其特征在于包括单片机;置于现场可编程门阵列中的加密单元,加密单元连接单片机和编程元件;连接编成元件的配置芯片;配置芯片将配置数据发送给编程元件,加密单元在编程元件接收到配置数据后控制单片机开始配置数据,同时现场可编程门阵列中的晶振开始计数,单片机在配置数据后发送高电平复位信号给现场可编程门阵列以控制晶振停止计数;之后加密单元发送一随机码给单片机,单片机对该随机码进行加密后发送给加密单元,加密单元同时对该随机码进行加密,将加密后的随机码与单片机加密后的随机码进行比对,若相同则控制编程元件中的配置数据开始执行,否则编程元件中的配置数据不执行。
2.如权利要求1所述的FPGA配置数据的加密系统,其特征在于单片机包括加密模块、加密输出模块;加密单元包括随机码发生器、本地加密模块、验证模块;随机码发生器产生一随机码并发送给加密模块和本地加密模块,加密模块和本地加密模块分别采用相同的加密算法对该随机码进行加密,加密输出模块将加密模块加密后的随机码发送给验证模块,验证模块将本地加密模块加密后的随机码和加密输出模块发送的加密后的随机码进行比对,若相同则向编程元件发送复位信号以控制编程元件中的配置数据开始执行。
3.如权利要求1或2所述的FPGA配置数据的加密系统,其特征在于编程元件是SRAM;配置芯片是Flash。
4.如权利要求1或2所述的FPGA配置数据的加密系统,其特征在于,单片机采用线性反馈移位寄存器,对指定位抽取异或后循环移位η次的方式实现对随机码的加密。
5.一种如权利要求1所述的FPGA配置数据的加密系统的加密方法,其特征在于包括以下步骤·51编程元件从配置芯片读取配置数据;52加密单元控制单片机开始配置数据,同时现场可编程门阵列中的晶振开始计数;S3:单片机配置数据后,利用高电平复位信号控制现场可编程门阵列中的晶振停止计数;S4 加密单元发送随机码,单片机对该随机码进行加密,同时现场可编程门阵列对该随机码进行本地加密;S5:加密单元对单片机加密后的随机码与现场可编程门阵列本地加密后的随机码比较,若相同,则编程元件中的配置数据开始执行,否则编程元件中的配置数据不执行。
全文摘要
本发明公开了一种FPGA配置数据的加密系统及其加密方法。系统包括单片机;加密单元,配置芯片;配置芯片将配置数据发送给编程元件,加密单元在编程元件接收到配置数据后控制单片机开始配置数据,之后加密单元发送一随机码给单片机,单片机对该随机码进行加密后发送给加密单元,加密单元同时对随机码进行加密,将加密后的随机码与单片机加密后的随机码进行比对,若相同则控制编程元件中的配置数据开始执行。本发明的FPGA配置数据的加密系统相对于现有技术简单易行、保密性好、容易升级,适用于低成本的FPGA配置数据的加密,由于加密电路利用了外部单片机和FPGA内部分逻辑单元,因而没有增加过多的硬件成本。
文档编号G06F21/00GK102567671SQ20111045143
公开日2012年7月11日 申请日期2011年12月30日 优先权日2011年12月30日
发明者常明亮, 程鹏 申请人:大连捷成实业发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1