一种fpga系统加密及参数配置方法

文档序号:6632649阅读:363来源:国知局
一种fpga系统加密及参数配置方法
【专利摘要】本发明涉及通信领域,特别涉及FPGA逻辑设计领域,具体指一种FPGA系统加密及参数配置方法,本发明系统由CPU、FPGA、CPLD三大部分组成,其中CPLD负责系统加密和系统参数配置;FPGA内部解密模块负责系统解密,通过使能FPGA功能模块,完成FPGA系统功能启停控制;并且还可以通过JTAG接口或RJ45接口完成系统功能调试和系统升级。实现系统加密安全可靠的情况下,可向客户开放FPGA逻辑代码,占用FPGA逻辑资源少,系统运行效率高,并能通过本地升级或远程升级方法,完成设备更新和维护管理,很好解决了CES电路仿真系列产品知识产权保护和参数配置问题。
【专利说明】—种FPGA系统加密及参数配置方法
[0001]

【技术领域】
本发明涉及通信领域,特别涉及FPGA逻辑设计领域。

【背景技术】
[0002]TDMoIP是通过IP网络来承载TDM业务的接入设备,广泛用于3G/4G传输网络中接入2G业务,实现2G业务的兼容和过渡。CES电路仿真是TDMoIP设备核心技术,由于技术难度非常高,目前全球掌握CES核心技术的公司只有几家。研发公司在研发的CES方案形成TDMoIP系列产品时,如何保护核心技术非常关键。对系统核心技术进行加密也就显得尤为重要,通过对比分析常规加密方案,发现采用的FPGA系统加密及参数配置方法是保护系统核心技术最为有效的方式之一。
[0003]FPGA (Field Programmable Gate Array)现场可编程门阵列是最常用的复杂通信系统电路开发方式,CES电路仿真系统通常包含由CPU (Central Processing Unit)中央处理器、SWITCH交换、FPGA现场可编程门阵列,其中CPU主要负责数据处理、SWITCH主要负责上下行数据交换、FPGA主要负责系统逻辑处理。系统上电时,CPU从外部存储器FLASH中读取FPGA逻辑代码,对FPGA进行加载,FPGA正常加载后,系统进入正常工作状态。
[0004]而现有技术很容易在CPU对FPGA加载过程捕获逻辑代码,进行分析和复制;另一方面,由于CES电路仿真产品系列型号较多,按El (—种时分复用巾贞,速率为2.048Mbit/s)接口分有E1、2E1、4E1、8E1、16E1、32E1等6种,每种E1又分汇聚/不汇聚2种模式,也有系统/环回/差分/自适应4种时钟类型,这样就造成了用户加密在型号管理和后期的维护升级过程变得非常复杂。
[0005]目前,FPGA配置数据加密的方法主要有以下两类:
A.选用自带加密功能的FPGA,如Xilinx的Virtex 2_5系列,采用的是DES加密算法;Altera的Stratix I1-1II系列,采用的是128位AES高级加密算法。这两种加密算法的加密原理是:逻辑代码加载到Flash时被加密,在加载回FPGA内部SRAM时被还原,第三方从Flash拷贝的数据是加密数据,无法使用。这种方法简单方便,但加密成本较高,一般中、低档FPGA都不具备此项加密功能。
[0006]B.FPGA外接专用加密芯片,如美信DS28E01,当系统上电后,DS28E01会产生一个由密钥、随机数、器件全球唯一识别号及附加数据在内的HASH运算结果,即160位的MAC(消息验证码),同时,FPGA内部也会同安全存储器一样进行包含密钥、随机数、器件识别号及附加数据在内的HASH计算,并产生一个期望的MAC,然后在FPGA内对这两个MAC进行比较,如果一样,则FPGA认为电路“合法”,此时FPGA进入正常工作状态,运行FPGA配置数据中的所有功能;如果两个MAC不一致,FPGA进入非正常状态,只执行部分功能。这种专用加密芯片采用国际通用算法,实现简单,目前被广泛应用。
[0007]但是DS28E01不适合CES电路仿真系列产品的参数配置控制,而且很多时候用户只希望对FPGA系统工作进行加密控制,而不需要对所有运行过程进行加密验证,以降低FPGA逻辑占用,提高系统资源利用率,此时现有的FPGA加密方式就不能很好的满足上述要求。
[0008]而CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的大规模集成电路,用户可根据需要构造其逻辑功能,适合用来完成各种算法和组合逻辑电路。CPLD具有E2PR0M或FAST FLASH,即使系统断电时编程信息也不丢失,无需外部存储器芯片,使用简单。此外CPLD保密性好,成本低,适合用于系统加密和参数配置。


【发明内容】

[0009]本发明的目的是提供一种FPGA通信系统的加密及参数配置方法,本发明通过CPLD实现私有算法加密和参数配置处理,在系统加密安全可靠的情况下,可向客户开放二进制FPGA逻辑代码,客户能通过本地升级或远程升级,更新维护设备管理,解决CES电路仿真系列产品知识产权保护和参数灵活配置问题。
[0010]为了实现上述发明目的,本发明提供了以下技术方案:
一种基于CPLD芯片的FPGA加密及参数配置系统,包括外部存储器模块、CPU模块、FPGA模块和CPLD模块,其中所述外部存储器模块与CPU模块相连,所述CPU模块通过地址总线和数据总线与FPGA模块相连,所述FPGA模块通过CLK和DATA数据总线与CPLD模块相连。
[0011]基于上述系统的一种FPGA系统加密及参数配置方法,采用外接的CPLD加密芯片进行加密;由FPGA内部的解密模块负责系统的解密工作;
CPLD内部包括加密算法模块和系统配置模块,所述加密算法模块产生解密扰码,系统配置模块存储系统配置数据;
系统工作时FPGA内部的解密模块依次读取CPLD产生的解密扰码以及系统配置数据,先后进行解密对比和系统配置数据匹配验证,解密及配置数据验证正确后,由解密模块发出使能信号启动FPGA的功能模块,使系统正常工作。
[0012]具体的,工作时所述CPU模块将存储于外部存储器模块中的逻辑代码加载到FPGA模块中;
FPGA的内部解密模块,从CPLD模块中读取解密扰码,并进行解密对比;
如果解密对比正确,解密模块从CPLD中读取系统配置数据,并进行参数配置匹配验证;
如果匹配验证正确,通过解密模块发出使能信息,触发启动FPGA内部的各功能模块,FPGA进入正常工作状态。
[0013]进一步的,CPLD的加密算法为私有算法,私有算法自定义更加灵活,加密的安全性更高。
[0014]进一步的,CPLD加密算法为自定义多项式,比如说:X139+ X125+ X43+ X41+ X30+ X27+X18+ X14+ X12+ X11+ X7+ X3+ X2+l。
[0015]进一步的,CPLD加密的计算方法为:自定义多项式结合产品配置ID号,计算产生加密扰码。相比于一般FPGA解密所采取的HASH算法,自定义多项式的算法更加灵活多变,同时结合产品的配置ID号,作为加密扰码的计算参数,巧妙的解决了系统加密及产品参数识别的双重功效,同时加强了系统加密的安全性。
[0016]进一步的,FPGA内部的解密模块的解密验证算法与CPLD所采用的加密算法是一致的;即是自定义多项式:X139+ X125+ X43+ X41+ X30+ X27+ X18+ X14+ X12+ X11+ X7+ X3+ X2+1 ,这保证了解密的可靠性,同时保证只有当FPGA和CPLD都是采用本方法工作时,整个系统才能正常运转,提高了系统的安全性。
[0017]CPLD的自定义加密多项式在CPLD逻辑代码烧录固定后,不能复制,保密性高;可以将CES产品各型号参数配置直接写入CPLD,便于产品型号的区分,也便于产品维护升级,值得注意的是FPGA 二进制逻辑代码不能单独工作,它必须与CPLD联合工作,所以可以开放FPGA 二进制逻辑代码,而不会影响系统安全。
[0018]本系统逻辑代码分为两个部分,即FPGA公开逻辑代码部分和CPLD加密逻辑代码部分,只有两个部分逻辑代码配合,系统才能正常工作;好象保险柜有钥匙和密码两个部分一样,钥匙是固定不变的,密码是可以修改的,钥匙和密码都不能单独开启保险柜,只有钥匙和密码配合正确,才能开启保险柜一样;FPGA公开逻辑代码部分是可修改升级的,CPLD加密逻辑代码部分是不可修改的,只有两个部分配合,系统才能正常工作,这样就既解决了系统的灵活性问题,也保证了系统的安全性问题。
[0019]具体的,本发明的实现过程包含如下步骤:
(1)系统上电,CPU读取外部存储器逻辑代码向FPGA进行加载;
(2)FPGA内部解密模块读取CPLD的加密信息,进行解密验证,如果解密正确,进行下一步骤,否则解密模块发出复位信息;
(3)FPGA内部解密模块读取CPLD存储的系统配置数据,并进行配置数据匹配验证,如果参数配置验证正确,进行下一步骤,否则解密模块发出复位信息;
(4)解密模块发出使能信息,触发启动FPGA各功能模块;
(5)FPGA进入正常的工作状态。
[0020]进一步的,所述FPGA配置数据包括:E1路数、工作模式(汇聚/点对点)、时钟恢复精度等级、工作寄存器默认参数、产品出厂序列ID。
[0021]一种FPGA系统加密及参数配置方法所基于的系统,包括外部存储器模块、CPU模块、FPGA模块和CPLD模块,其中所述外部存储器模块与CPU模块相连,所述CPU模块与FPGA模块相连,所述FPGA模块与CPLD模块相连,工作时所述CPU模块将存储于外部存储器模块中的逻辑代码加载到FPGA模块中,FPGA的内部解密模块,根据所加载的逻辑代码的控制命令从CPLD模块中读取加密信息,并进行解密对比;如果解密正确则从CPLD中读取FPGA的配置数据,并对FPGA进行参数配置;FPGA参数配置完成后,对所配置数据是否正确进行校验,配置如果正确则通过解密模块发出使能信息,触发启动FPGA各功能模块,FPGA进入正常工作状态。
[0022]进一步的,所述CPU模块还与联合测试JTAG接口相连。
[0023]进一步的,系统通过JTAG 口,可以更新外部存储器模块,实现对FPGA系统本地升级,升级时,不需要对CPLD加密芯片进行升级,这样的升级方式可以便于用户的型号管理和更新换代。
[0024]优选的,所述CPU模块还与RJ45接口相连。
[0025]进一步的,本系统也可以通过IP地址,CPU从RJ45接口读取升级信息,更新写入外部存储器模块,实现对FPGA系统远程升级,升级时,不需要对CPLD加密芯片进行升级。
[0026]优选的,CPU芯片选用MARVELL公司的88E6218。
[0027]优选的,FPGA芯片选用 Xilinx 的 XC6SLX16-2FT256。
[0028]优选的,CPLD选用ACTEL公司的A3PN015。
[0029]与现有技术相比,本发明的有益效果:本发明提供一种FPGA通信系统的加密及参数配置方法,通信系统由CPU、FPGA、CPLD三大部分组成。CPLD负责系统加密和系统参数配置;FPGA内部解密模块负责系统解密,通过使能FPGA功能模块,完成FPGA系统功能启停控制;CPU读取外部存储器FLASH,完成对FPGA逻辑代码加载配置,CPU还可以通过JTAG接口可以完成系统功能调试和系统升级,CPU也可通过RJ45,实现系统的远程升级等。本发明的目的是通过CPLD私有算法加密和参数配置处理,实现系统加密安全可靠的情况下,可向客户开放FPGA逻辑代码,客户能通过本地升级或远程升级方法,更新维护设备管理,很好解决了 CES电路仿真系列产品知识产权保护和参数配置问题。
[0030]【专利附图】

【附图说明】:
图1为一种基于CPLD芯片的FPGA系统加密及参数配置工作流程图。

【具体实施方式】
[0031 ] 一种基于CPLD芯片的FPGA加密及参数配置系统,包括外部存储器模块、CPU模块、FPGA模块和CPLD模块,其中所述外部存储器模块与CPU模块相连,所述CPU模块通过地址总线和数据总线与FPGA模块相连,所述FPGA模块通过CLK和DATA数据总线与CPLD模块相连。
[0032]基于上述系统的一种FPGA系统加密及参数配置方法,采用外接的CPLD加密芯片进行加密;由FPGA内部的解密模块负责系统的解密工作;
CPLD内部包括加密算法模块和系统配置模块,所述加密算法模块产生解密扰码,系统配置模块存储系统配置数据;
系统工作时FPGA内部的解密模块依次读取CPLD产生的解密扰码以及系统配置数据,先后进行解密对比和系统配置数据匹配验证,解密及配置数据验证正确后,由解密模块发出使能信号启动FPGA的功能模块,使系统正常工作。
[0033]具体的,工作时所述CPU模块将存储于外部存储器模块中的逻辑代码加载到FPGA模块中;
FPGA的内部解密模块,从CPLD模块中读取解密扰码,并进行解密对比;
如果解密对比正确,解密模块从CPLD中读取系统配置数据,并进行参数配置匹配验证;
如果匹配验证正确,通过解密模块发出使能信息,触发启动FPGA内部的各功能模块,FPGA进入正常工作状态。
[0034]进一步的,CPLD的加密算法为私有算法,私有算法自定义更加灵活,加密的安全性更高。
[0035]进一步的,CPLD加密算法为自定义多项式,比如说:X139+ X125+ X43+ X41+ X30+ X27+X18+ X14+ X12+ X11+ X7+ X3+ X2+l。
[0036]进一步的,CPLD加密的计算方法为:自定义多项式结合产品配置ID号,产生计算产生加密扰码。相比于一般FPGA解密所采取的HASH算法,自定义多项式的算法更加灵活多变,同时结合产品的配置ID号,作为加密扰码的计算参数,巧妙的解决了系统加密及产品参数识别的双重功效,同时加强了系统加密的安全性。
[0037]进一步的,FPGA内部的解密模块的解密验证算法与CPLD所采用的加密算法是一致的;即是自定义多项式:X139+ X125+ X43+ X41+ X30+ X27+ X18+ X14+ X12+ X11+ X7+ X3+ X2+1 ,这保证了解密的可靠性,同时保证只有当FPGA和CPLD都是采用本方法工作时,整个系统才能正常运转,提高了系统的安全性。
[0038]CPLD的自定义加密多项式在CPLD逻辑代码烧录固定后,不能复制,保密性高;可以将CES产品各型号参数配置直接写入CPLD,便于产品型号的区分,也便于产品维护升级,值得注意的是FPGA 二进制逻辑代码不能单独工作,它必须与CPLD联合工作,所以可以开放FPGA 二进制逻辑代码,而不会影响系统安全。
[0039]本系统逻辑代码分为两个部分,即FPGA公开逻辑代码部分和CPLD加密逻辑代码部分,只有两个部分逻辑代码配合,系统才能正常工作;好象保险柜有钥匙和密码两个部分一样,钥匙是固定不变的,密码是可以修改的,钥匙和密码都不能单独开启保险柜,只有钥匙和密码配合正确,才能开启保险柜一样;FPGA公开逻辑代码部分是可修改升级的,CPLD加密逻辑代码部分是不可修改的,只有两个部分配合,系统才能正常工作,这样就既解决了系统的灵活性问题,也保证了系统的安全性问题。
[0040]具体的,本发明的实现过程包含如图1所示的步骤:
(1)系统上电,CPU读取外部存储器逻辑代码向FPGA进行加载;
(2)FPGA内部解密模块读取CPLD的加密信息,进行解密验证,如果解密正确,进行下一步骤,否则解密模块发出复位信息;
(3)FPGA内部解密模块读取CPLD存储的系统配置数据,并进行配置数据匹配验证,如果参数配置验证正确,进行下一步骤,否则解密模块发出复位信息;
(4)解密模块发出使能信息,触发启动FPGA各功能模块;
(5)FPGA进入正常的工作状态。
[0041]进一步的,所述FPGA配置数据包括:E1路数、工作模式(汇聚/点对点)、时钟恢复精度等级、工作寄存器默认参数、产品出厂序列ID。
[0042]一种FPGA系统加密及参数配置方法所基于的系统,包括外部存储器模块、CPU模块、FPGA模块和CPLD模块,其中所述外部存储器模块与CPU模块相连,所述CPU模块与FPGA模块相连,所述FPGA模块与CPLD模块相连,工作时所述CPU模块将存储于外部存储器模块中的逻辑代码加载到FPGA模块中,FPGA的内部解密模块,根据所加载的逻辑代码的控制命令从CPLD模块中读取加密信息,并进行解密对比;如果解密正确则从CPLD中读取FPGA的配置数据,并对FPGA进行参数配置;FPGA参数配置完成后,对所配置数据是否正确进行校验,配置如果正确则通过解密模块发出使能信息,触发启动FPGA各功能模块,FPGA进入正常工作状态。
[0043]进一步的,所述CPU模块还与联合测试JTAG接口相连。
[0044]进一步的,系统通过JTAG 口,可以更新外部存储器模块,实现对FPGA系统本地升级,升级时,不需要对CPLD加密芯片进行升级,这样的升级方式可以便于用户的型号管理和更新换代。
[0045]优选的,所述CPU模块还与RJ45接口相连。
[0046]进一步的,本系统也可以通过IP地址,CPU从RJ45接口读取升级信息,更新写入外部存储器模块,实现对FPGA系统远程升级,升级时,不需要对CPLD加密芯片进行升级。
[0047]优选的,CPU芯片选用MARVELL公司的88E6218。
[0048]优选的,FPGA芯片选用 Xilinx 的 XC6SLX16-2FT256。
[0049]优选的,CPLD选用ACTEL公司的A3PN015。
[0050]本发明提供一种FPGA通信系统的加密及参数配置方法,通信系统由CPU、FPGA、CPLD三大部分组成。CPLD负责系统加密和系统参数配置;FPGA内部解密模块负责系统解密,通过使能FPGA功能模块,完成FPGA系统功能启停控制;CPU读取外部存储器FLASH,完成对FPGA逻辑代码加载配置,CPU还可以通过JTAG接口可以完成系统功能调试和系统升级,CPU也可通过RJ45,实现系统的远程升级等。本发明的目的是通过CPLD私有算法加密和参数配置处理,实现系统加密安全可靠的情况下,可向客户开放FPGA逻辑代码,客户能通过本地升级或远程升级方法,更新维护设备管理,很好解决了 CES电路仿真系列产品知识产权保护和参数配置问题。
【权利要求】
1.一种FPGA系统加密及参数配置方法,其特征在于,采用外接的CPLD加密芯片进行加密;由FPGA内部的解密模块负责系统的解密工作; CPLD内部包括加密算法模块和系统配置模块,由所述加密算法模块产生解密扰码,由系统配置模块存储系统配置数据; 系统工作时FPGA内部的解密模块依次读取CPLD产生的解密扰码以及系统配置数据,先后进行解密对比和系统配置数据匹配验证,解密对比和配置数据验证正确后,由解密模块发出使能信号启动FPGA的功能模块,使系统正常工作。
2.如权利要求1所述的一种FPGA系统加密及参数配置方法,其特征在于,所述算法实现过程包含如下步骤: (1)系统上电,由CPU读取外部存储器逻辑代码向FPGA进行加载; (2)FPGA内部解密模块读取CPLD的加密信息,进行解密验证,如果解密正确,进行下一步骤,否则解密模块发出复位信息; (3)FPGA内部解密模块读取CPLD存储的系统配置数据,并进行配置数据匹配验证,如果匹配验证正确,进行下一步骤,否则解密模块发出复位信息; (4)解密模块发出使能信息,触发启动FPGA各功能模块; (5)FPGA进入正常的工作状态。
3.如权利要求2所述的一种FPGA系统加密及参数配置方法,其特征在于,CPLD所采用的加密信息算法和对应FPGA内部解密的解密验证算法为一致的自定义多项式。
4.如权利要求3所述的一种FPGA系统加密及参数配置方法,其特征在于,所述自定义多项式为:X139+ X125+ X43+ X41+ X30+ X27+ X18+ X14+ X12+ X11+ X7+ X3+ X2+1 0
5.如权利要求2所述的一种FPGA系统加密及参数配置方法,其特征在于,所述步骤(2)中的加密信息的计算参数包括产品配置ID号。
6.如权利要求1至5之一所述的一种FPGA系统加密及参数配置方法,其特征在于:所述外部存储器与CPU模块相连,用以存储FPGA的逻辑代码。
7.如权利要求6所述的一种FPGA系统加密及参数配置方法,其特征在于: 所述CPU还与JTAG接口相连,通过JTAG接口更新外部存储器模块,实现对FPGA系统本地升级。
8.如权利要求6所述的一种FPGA系统加密及参数配置方法,其特征在于:所述CPU还与RJ45接口相连;通过IP地址,CPU从RJ45读取升级信息更新写入外部存储器,实现对FPGA系统远程升级。
【文档编号】G06F21/72GK104346584SQ201410603519
【公开日】2015年2月11日 申请日期:2014年10月31日 优先权日:2014年10月31日
【发明者】胡强, 刘思卓 申请人:成都朗锐芯科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1