原创 关于FPGA加密问题

2010-10-18 12:24 5145 0 16 分类: 消费电子

众所周知,所有FPGA基本上都是基于SRAM结构的,其程序(固件)是通过JTAG口直接加载或从外部Flash加载到内部SRAM中运行的。由于Flash本身无法加密,因此FPGA程序加密保护是所有开发者必须面临的一个主要问题。目前,FPGA程序加密主要有两种方法:
1、如果系统中没有可加密的微处理器,可选用自带加密功能的FPGA,其中Xilinx的有Virtex-2~5系列,采用的是DES( Data Encryption Standard)加密算法;ALtera的有Stratix II~III系列,采用128位密钥的高级加密算法AES( Advanced Encryption Standard)。两者的加密原理是:程序被加载到Flash时被加密,再加载到FPGA内部SRAM时被还原。第三者从Flash拷出的程序是加了密的,无法复制使用。这种方法简单、实用,但大部分FPGA(特别是中、低档FPGA)都不具备加密功能。
2、对于自身没有加密功能的FPGA,可在系统中增加一个可加密的MCU(单片机),FPGA程序在下载到Flash之前,由用户根据自定的算法加其加密,然后再下载到Flash中,MCU将Flash中程序还原后装载到FPGA的SRAM中运行。因MCU是加密的,其还原算法第三者无法破译,即使将Flash中的代码拷出,也无法使用。这种方法虽然复杂些,但对所有FPGA都适用。

广告

文章评论 16条评论)

登录后参与讨论

dhaoafeu_955067691 2015-9-20 13:27

对于使用MCU进行加密的方法,虽然MCU可以提供一定强度的保护,但它的密钥总是要存储的,存在非易失存储器里的密钥可以通过物理攻击获得,而易失性存储器又要不停地供电,造成额外功耗,此外还有功耗分析,侧信道攻击等等窃取密钥的方法。而且,国内已经有很多从事芯片解密的公司了。这种方法的效果并不太好

hezy_637505446 2011-5-27 10:41

个人看法,防硬件拷贝是关键,以他都是次要的。

hezy_637505446 2011-5-27 10:39

道高一尺,魔高一丈。加密与解密永远都在进步中。

wfeiwu_989299851 2010-10-25 00:44

用ACTEL的FPGA, FLASH结构,AES加密。 吴勇 -- Yong Wu 世健国际贸易(深圳)有限公司 Tel: (86755) 8364 0166 - 672 Fax: (86755) 2598 2255 Mobile:(86)15920585842 Email: wu.yong@excelpoint.com.cn URL: www.excelpoint.com.cn

517428826_650877075 2010-10-24 08:42

学习了版主及各位楼长的见解

nb39400_222345752 2010-10-24 00:02

貌似现在已经有人可以pojie了

wangyang1019_157270704 2010-10-22 12:33

对于直接抄板的应该没有用吧 有些不明白的就是 如果拿到了fpga程序 一般人能分析出运算程序和逻辑 并进行修改吗?

670977307_619938538 2010-10-21 18:44

果然很复杂

zsc_197_881065402 2010-10-20 19:14

破译的东西,总是那样的好。。

denny.tsao_919082869 2010-10-20 11:57

FPGA開機就issue random seed/key, flash這頭收到seed/key就根據某演算法重編數字流, FPGA再根據seed/key 解碼數字流, 或seed/key 的收發關係倒過來也可以, 保證監聽的數字流每次開機都不同...
相关推荐阅读
emesjx_158457767 2014-09-29 14:57
高速LVDS接口信号完整性处理实例
  一、系统介绍 EMCCD相机由图像传感器、驱动电路、FPGA(Spartan-3)、LVDS接口和电源等组成。LVDS输出接口使用2片DS92LV1021,每片实现10bit并行数据到...
emesjx_158457767 2014-08-20 14:15
关于Xilinx FPGA JTAG下载时菊花链路中的芯片数量
  当一个系统中含有多片(2片以上)Xilinx FPGA、CPLD或PROM(FLASH)时,可采用单一JTAG口以菊花链(Daisy Chain)形式将所有芯片串联起来实现下载编程,如下图...
emesjx_158457767 2014-08-12 07:50
NiosII程序编译时出现onchip_mem不够问题及解决方法
开发Altera Nios II软件可使用Nios II IDE或 Nios II Software Build Tools for Eclipse(即:Nios II SBT for Eclip...
emesjx_158457767 2014-08-11 15:08
Altera QuartusII及Cyclone IV E使用经验
  1、仅C8L、IC8L、C9L使用1.0V核电压(VCCINT),其它速度的均使用1.2V核电压。 2、对于作为LVDS传输的Bank必须接2.5V的VCCIO,参考数据手册表1-20...
emesjx_158457767 2014-08-07 14:39
Altera FPGA带NiosII内核程序的JTAG下载方法总结
  1、对于Altera FPGA,含Nios II时需要下载的文件有4种:.sof 文件,.pof 文件,.jic 文件,.elf 文件。 下载文件 ...
emesjx_158457767 2014-08-06 10:18
Quratus II中 Nios II 硬件设计工具SOPC Builder与Qsys的区别
  1、 SOPC(System On a Programmable Chip.)即可编程片上系统,SOPC Builder是Quartus II中传统的Nios II 硬件设计工具,可以灵活...
广告
我要评论
16
0
广告
关闭 热点推荐上一条 /2 下一条