器件生产、现场更新和固件远程重构的工作外包可能会导致FPGA被复制、克隆或盗版。这是不可回避的问题,很多企业产品器件焊接、固化等都需要外包,这时候就会存在上述风险。即便生产所有流程都不外包,FPGA中的配置bit流也有被“盗取”的风险。
我们知道FPGA一般分两种,一种是基于SRAM结构;另外一种是基于反熔丝(Antifuse)或者FLASH结构。两种FPGA各有优劣势,对于安全性来说第二种是最安全的,但是目前技术无法将这种FPGA做的很大和无法满足足够复杂设计需求。第一种FPGA不安全甚至非常脆弱,是因为一旦系统上电,盗版者就能轻而易举地获取FPGA的位流。
我们这里讨论的FPGA安全性就是针对基于SRAM结构FPGA来进行的。
对于FPGA的攻击一般分为三种:
- 复制(copy),有时候叫克隆(clone)
- 反向工程(reverse engineering)
- 篡改(tampering)
Altera从StratixII开始在高端器件中对于配置比特流提供了128bit AES密钥保护,可以参考ALTERA的an341了解相关详细情况。2009年Altera又推出了CycloneIII LS系列,该系列也可以提供AES密钥保护,而且是256bit,同时该系列可以采用“划分FPGA设计,实现冗余和信息安全”。详细内容可以参考ALTERA的application note an589。这里我想要介绍的是如何给我们的FPGA配置比特流添加128或者256bit密钥保护。
实现安全配置流程
安全配置流程分三步:
1、生成密钥可编程文件和加密配置数据;
2、将可编程密钥文件写入FPGA;
3、用加密配置数据配置FPGA。
下面分步骤介绍
Step1:
第一步,完成设计生成配置需要的sof文件。
第二步,向ALTERA或者其代理申请可以使能安全性设计的license。
第三步,生成密钥文件(key file)和加密配置文件,分为以下几步
1、从file菜单选择Convert Programming Files打开Convert Programming Files对话框,如下图所示
2、在上述打开的对话框中做如下选择设置
a、从programming file type下拉菜单中选择生成的配置文件类型;
b、若使用配置器件,从configuration device下拉项选择对应器件;
c、从Mode下拉项中选择模式;
d、在File name中指定生成的配置文件的文件名以及保存地址;
e、Input file to convert框中选中SOF data;(注:当需要转换多个sof文件的时候点右边Add sof data来增加)
f、点Add file添加要被转换加密的sof文件;
g、高亮选中加入的sof文件;
h、点属性按钮Properties,弹出SOF file Properties:Bitstream Encryption对话框,如下图所示
注:假如之前没有获得使能加密设计的license,则该SOF file属性对话框如下图所示
i、属性对话框中选中Generate Encrypt Bitstream;
j、选中Generate Key Programming File,并指定生成的epk文件的路径以及文件名;
k、输入key,key输入有两种方式,一种是通过键盘(又可分为PC键盘和系统小键盘两种,如下图所示),一种是通过导入key文件来实现;
如上图所示,点Add进入手动输入key对话框,点Edit也可进入该对话框,而key enty method则选择使用大键盘还是对话框中的小键盘输入。
l、设置好key1和key2以后,阅读加密设计声明,选择同意后即可点ok完成ekp文件和加密配置文件的生成。
3、说明一下key文件,即通过文件的形式导入密钥,.key文件其实就是符合文本格式的文件,文件的格式如下
下图是一个key文件例子
Step2、将可编程密钥写入FPGA
在给FPGA写入密钥之前,先确保FPGA可以被编程,另外硬件设计上必须提供保持密钥的电池。FPGA获得密钥后,可以接受加密和非加密的配置数据流,但是当任何密码错误时候都会导致nstatus引脚上产生一个低电平,也即FPGA持续地自我复位。
写密钥ekp文件的方法跟jtag模式下载基本相似,模式也是jtag模式,添加ekp文件即可开始编写,CIII LS跟StratixIII以及StratixIV和Arria IIGX不同点是在编写的时候少了Configure Volatile Design Security Key选项。
Step3、用加密配置数据配置FPGA
略
例:StratixIV安全配置过程
第一步&第二步:
第三步:
用户1110361 2010-9-13 14:40
用户235210 2009-11-12 16:12
用户534970 2009-11-11 15:12
ilove314_323192455 2009-11-11 13:42