FPGA设计的安全性和技术保护的应用设计.docx

上传人:lao****ou 文档编号:834441 上传时间:2024-06-12 格式:DOCX 页数:8 大小:191.75KB
下载 相关 举报
FPGA设计的安全性和技术保护的应用设计.docx_第1页
第1页 / 共8页
FPGA设计的安全性和技术保护的应用设计.docx_第2页
第2页 / 共8页
FPGA设计的安全性和技术保护的应用设计.docx_第3页
第3页 / 共8页
FPGA设计的安全性和技术保护的应用设计.docx_第4页
第4页 / 共8页
FPGA设计的安全性和技术保护的应用设计.docx_第5页
第5页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《FPGA设计的安全性和技术保护的应用设计.docx》由会员分享,可在线阅读,更多相关《FPGA设计的安全性和技术保护的应用设计.docx(8页珍藏版)》请在第一文库网上搜索。

1、FPGA设计的安全性和技术保护的应用设计与开发成本很高的AS1C相比,FPGA可重复编程的性能正受到系统设计者的青睐。此外,FPGA的性能和功能也越来越强大,包括32位软处理器、SERDES.DSP块和高性能的接口。现在的低成本FPGA甚至可以满足大批量的应用。设计人员采用FPGA能够快速开发之星,以应对产品快速上市(市场要求缩短产品的开发时间)和远程更新的需求。但是,把器件生产、现场更新和固件远程重构的工作外包可能会导致FPGA被复制、克隆或盗版。这对某些企业是个严重的问题,因为有些篁法对企业保持竞争优势是必不可少的,而外包可能使这些算法被别人利用。因此,考虑FPGA设计的安全性是一件非常重

2、要的事。FPGA有两种类型:基于SR&、需要用外部引导器件配置的易失FPGA,以及将配置保存在内存中因而不需要外部引导器件的非易失FPGAo基于SRAM的FPGA是易失器件。如果切断电源,配置即被删除,必须对器件进行重新配置,然后器件才能工作。这类器件可以用处理器或使用SPI或并行闪存通过JTAG端旦编程。就安全性而言,它们是很脆弱的。一旦系统上电,盗版者就能轻而易举地获取FPGA的位流。FIaSh和反熔丝FPGA是非易失性的器件,它们上电后即可编程,无需使用任何外部存储器。这些非易失器件拥有最高级别的安全性。但是,反熔丝FPGA受到两个方面的制约:1)它们不能再次编程。2)它们的性能和内存容

3、量有限。而F1aShFPGA和SRAMFPGA是可以重复编程的。盗版行为分为几种类型:“克隆”复制系统元件的行为,甚至不必知道内部的逻辑。通过拦截FPGA的位流和复制配置,可以轻松地克隆一个低成本Sramfpgao“逆向工程”需要理解FPGA的逻辑功能,以便进行修改以满足盗版者的需要。盗版者可以分析无保护的位流以复制原先的设计,或解剖器件分析其内容。还有一个被广泛使用的盗版手段是“生产超过客户订购量的系统”,然后向市场出售多余的系统,而专利持有者却无法从中取得收益,没有任何方法可以阻止不择手段的分包商这样做。最后一种盗版方法是“盗窃服务”,盗版者通过破解系统的安全设置来获得特定的服务,如收看卫

4、星电视节目。打击盗版可以采用多种安全措施,最简单的方法的是使用一个保密位,防止FPGA的配置数据被截获。有了这个保密位,盗版者如果试图读取配置数据,读出的数据将全部为零。所有的FPGA都有这种类型的保护。然而,如果引导文件位于器件的外部,相对就比较容易复制配置,标准的SRAMFPGA就是这种情况。如果配置数据是在器件内部,如非易失FPGA,保密位就会有很好的保密效果。与反熔丝FPGA不同,SRAMFPGA和F1aShFPGA是可重复编程的,它们允许用户调整设计或赋予FPGA一个全新的功能。此外,现在甚至可以远程修改FPGA配置文件,从而修改系统。虽然重构对某些应用来说是个优点,但它也可能成为一

5、个安全隐患,因为盗版者可能拦截并获取新的码流。不过这可以通过在传输时保护位流来解决。虽然F1aShFPGA比SRAMFPGA更安全,它们也有缺点。它们的密度和存储容量有限,功能和I/O的速度也有限。针对这些缺点,莱迪思生显佳公司已经开发出一种创新的技术,它结合了以下两种技术的优点:* 性能和存储器容量较大的低成本SRAM* 可以内部存储重构数据的FIaSh莱迪思独特的f1exiF1ASH技术,将SRAM和F1ash整合在同一个FPGA中,可以同时实现以下几个方面的优点:* 位流配置* 以最短的系统中断时间进行远程重新配置* 数据保护和器件加锁复杂系统中的设计安全性通质正面临着构建日益复杂的系统

6、的挑战。图1FPGA与微处理器相连的系统图1展示了一个FPGA与微处理器相连的系统。微处理器通过一个外部PHY和一个集成在FPGA内的MAC与以太网连接。与竞争者的产品不同,这个微处理器中还包含用户逻辑。FPGA通过一个F1ash来配置。F1ash和RM中包含有微处理器的程序和系统的数据。如果系统需要更新,就通过以太网来发送数据。为了保护设计,FPGA数据和位流都经过了加密。但是,发送到微处理器的数据和指令未加扰,因此盗版者能够查看此数据并加以复制。一种可能的解决办法是在FPGA内实现软微处理器,它可以访问FPGA的内部存储器组,而从外部却无法看到存储器组。这些存储器组可以用来存储重要的算法和

7、数据。CFGIMemoryContro1EthernetMACCustom1ogicFPGAMemoryOpcodedeneramb1erH1eO32RAMJEthernetPHYFigure2CustomFunctionsOptiona1蛔窗设Oescram财er图2处理器集成在FPGA之中图2展示了同一个设计,但处理器集成在FPGA之中。图2中采用的软微处理器是1attiCCMico32。设计师构建了解扰器,因此加扰是机密的。使用解扰器允许加密的指令存储在外部存储器。为了加密位流,莱迪思为几款FPGA提供了128位AES密钥。ConfigurationMemoryBitstreamencr

8、yptedbyispVMusing128-bitAESencryption.1atticeECP2Mprogra/.他用工西二口腹、memory,J图3用128位AES密钥保护设计首先,工程师应用莱迪思的软件设计工具套件isp1EVER(7.0或更高版本)开发FPGA代码,完成综合、映射、布局布线和仿真后,产生位流,经最后验证后再用ispVM系统(莱迪思的编程工具)对电路板编程。当设计师对系统的功能感到满意时,此时就要来做保护设计的工作。可以用莱迪思的isp1EVER工具或莱迪思的编程工具ispVMSyStem对位流加密,用户可选择128位密钥。编码的位流可以是十六进制(从0至F,不区分大小写

9、)或一个ASC11密钥(可用所有字母数字字符和空格,大小写敏感),然后使用任何非加密的文件编码将该位流加载到配置存储器中。现在密钥应该已经保存在一个可编程存储区。编程是通过器件的JTAG端口进行。应该注意到,用密钥对位流加了密,现在只能通过加密的位流对FPGA进行配置。用SySCoNFIG接口或JTAG接口可以对莱迪思的FPGA进行编程。该SySCONF1G接口可以让用户使用集中配置模式,或FIaShSP1,或以并行的方式使用并行配置模式重新输入数据。符合IEEE1149.1和IEEE1532标准的JTAG端口允许以突发位流(或快速编程)模式、或用1532模式对数据进行编程。JTAG端口用来对

10、器件中的AES128位密钥编程。不需要用特别的模式来保存FPGA中的128位密钥。在莱迪思的FPGA中使用一个编码位流可以防止器件的配置被重新读取,但需要一些措施来确保配置能够正确地运作。位流未加密时,FPGA执行CRC操作。如果程序不正确,DONE信号保持在0,INrrN变为0。用户仍然可以访问JTAGUSerCode寄存器。对FPGA的位流译码时,它存储位流用户码,用来存放FPGA应用程序的版本号。图4加密位流的数据路径图4展示了加密位流的数据路径。当数据进入FPGA时,解码器读引导程序,前面所有的数据被忽略。即使解码器检测到加密的文件,如果FPGA的密钥未被编程,数据则被阻止,DONE信

11、号保持在(表示配置失败)。如果密钥已被编程,FPGA检查引导程序,指出后面所有的数据应通过解码器。然后FPGA检查标准引导程序,得知数据是否己被压缩。如果数据没有被压缩,则将它直接发送到解码单元。如果数据已压缩,就先把它送到解压缩引擎,然后再送到解码单元。一旦通过CRC校验,即对SRAM进行编程。DONE位被激活时,解压缩和译码擎不工作,允许其它JTAG链元件接收配置数据。莱迪思的经济型ECP2/MFPGA拥有位流加密功能,内置闪存的非易失1atticeXP2FPGA也有此功能。1attiCeXP2FPGA把SRAM映射合并入同一块芯左,设计和含有位流配置的F1aSh映射都在此芯片上工作。当设

12、计师重点关注电路板的面积和快速启动时间时,这类器件特别有用。内置闪存的FPGA非易失FPGA提供额外的F1ash保护安全功能,可以防止内存因意外或未经授权的操作被擦除或重新编程。FIaSh保护功能采用6?位密钥。对器件进行删除或重新编程时,ispVMSystem会核查F1ash是否被保护。如果是,就要求用户输入6?位密钥,然后ispVM检查这个密钥是否与存储在器件中的密钥一致,如果一致就执行操作。但是,如果丢失了密钥,器件就再也不能被擦除了。这些安全性措施不仅保护了用户电路板上的设计,而且也防止了试图修改系统功能的盗版行为。这些功能还有助于远程的系统更新。莱迪思FPGA提供这一功能,使用户可以

13、通过对FPGA重复编程来更新他们的系统,而不会中断它与周围元件的联系。此功能被称为TranSFR。ProgrammingFi1essystemDep1oyedinFie1d图5用最短的中断系统时间进行远程更新FPGA最值得注意的的特点是设计人员很容易对器件进行重构。但是,重构通常意味着系统要中断很长时间。但是,莱迪思开发的TranSFR技术将重构的影响降至最低。莱迪思的几个FPGA系列都支持TranSFR技术,包括那些含有内置闪存的器件,如MaChXO、1atticeXP和1attiCeXP2,以及像1attiCeECP2/M那样的SRAMFPGAoTransFR是一种同时使用基本任务编程和边

14、界扫描单元的技术。基本任务编程修改非易失存储器的内容(内部的或外部的),以便使FPGA的SRAM部分继续工作。莱迪思的FPGA拥有可以取样和预加载的边界扫描单元,可以在编程时控制FPGA的I/O。ConfigurationMemoryF1ash(Configuration2)1atticeECP2M1ogic-SRAM1(Configuration1)ConfigurationMemoryF1ash(Configuration2)图6执行TransFR的4个步躲执行TransFR的4个步骤:1,进行基本任务编程。系统对FPGA的非易失性存储器再编程,但不会中断SRAM的功能。2,可以锁定I/O

15、的状态,用户可以保持或预先确定I/O的状态。在整个重新配置过程中,I/O的值保持不变,以防止系统被关闭。3,接着用JTAG命令把新的配置传输至非易失存储器。一完成对SRAM就执行全局复位,以便使该器件处于一个已知的状态。然后释放I/O的状态,并再次锁定P11o4,释放输出,内部逻辑停止对I/O的监测。要使用TransFR,需要用到isp1EVER开发工具和ispVMo用户通过使用128位AES密钥加密文件和1atticeTransFR技术完成了更新过程,但仍有可能因为系统本身的弱点或违法行为引发系统故障。虽然FPGA的位流是加密的,但是非法操作或传输中的错误都可能损坏它,从而导致FPGA被阻塞,使系统无法正确地重启。为了解决这个问题,莱迪思推出了“双引导”功能。双引导配置在配置存储器中存储两个编程文件。Atpower-*)XttK穹?M1oadsdata,kct(occurs*z枷砌即耐sector0.woio.图7双引导配置激活PROGRAM引脚或启动JTAG刷新指令后,FPGA下载存储在SeCtor1的位流o如果CRC出错,FPGA自动恢复到SCCtOrO配置。1atticeXP2非易失FPGA也有此功能。该FIaSh元件拥有主动配置,还有一个用来存放安全(go1den)配置的SPIF1asho莱迪思拥有许多能帮助

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服