保密的重要性
对电子系统而言,FPGA的保密性极其重要。图1列出了两个系统设计的示意图,左边为1995年所作的系统设计,在该设计中,以ASIC芯片为核心,FPGA仅起到胶合逻辑的作用;在右边2005年进行的同类型系统设计中,不难发现FPGA已经成为系统设计的核心,它整合了原有ASIC及部分ASSP芯片的功能,因此FPGA作为系统芯片直接取代了ASIC的功能。随着FPGA性能、容量与功能的不断提升,今天的FPGA
已成为系统的心脏、知识产权的集合,所以如果FPGA存在安全性问题的话,与其相关的产品将遭受严重打击。
图1 FPGA保密的重要性示意图(略)
保密性定义——四个对FPGA最大的安全威胁
a.克隆
克隆是指竞争对手拷贝启动 PROM 或从板上拦截处理器码流并进行复制。如果设计中包含外部码流时,则该设计的IP 对克隆非常脆弱。
b.反向工程
反向工程即竞争对手由重建您的设计原理图或网表复制您的设计。在这个过程中,竞争对手将了解设计的运作从而进行改进。
c.过建
过建在把您的产品交给无道德的合同制造商生产时出现,这些制造商能在开放市场上购买额外的FPGA元器件,然后在厂家没有允许的情况下,生产额外的产品,在没有开发成本和不需要提供技术支持的条件下,以更低的价格在市场上售卖,从而牟取利润。
d.拒绝服务
拒绝服务属于恶意破坏的行为,您的竞争对手或者黑客能够通过重新编程您系统上的 SRAM FPGA而使您的系统不能运行。拒绝服务使厂家的声誉、产品的质量等形象将遭到破坏。
Actel 第三代 Flash FPGA
在了解了保密性的定义及FPGA保密重要性的基础上,Actel推出了第三代Flash FPGA,具有众多优点与特性。
Actel第三代Flash FPGA,包括两个产品系列:ProASIC3与ProASIC3E。ProASIC3能实现30k到1M的门密度,它的容量高达144kb
SRAM,具有288个 I/O ;ProASIC3E能实现600k到 3M的门密度,它的容量高达504kb SRAM,具有604个I/O。
这两个系列均具备增强的高性能结构,其时钟频率最高可达350MHz,相对于第二代产品来说,其封装密度提高了20%,而逻辑利用率超过95%。SRAM的工作频率也可达到350MHz,而且每个模块中均带有硬连线的FIFO控制功能。三个锁相环(PLL)的输出频率也可达到350MHz,并且具有灵活的相位输出、延迟、分频和倍频功能。这两个系列同样支持64
位、66 MHz的PCI总线。
作为以价值为基础的FPGA,第三代产品提供了全新的功能,包括:所有器件都带有1kb片上可配置的Flash ROM及带硬连线 的AES
解密安全 ISP。上一代产品中的FPGA的保密措施在这一系列内继续保持,如片上 FlashLockTM 安全措施及针对单电压工作而在片上集成的电荷泵。最后,需要提及的是产品支持19种不同的I/O标准,包括
LVDS等。
Actel第三代Flash FPGA具有竞争性的成本优势,因为Flash 技术可省去SRAM FPGA额外的成本负担。此外,Flash
技术还可以提供以下独特的性能:
·单芯片;
·高安全性;
·上电即行;
·高可靠性 / 固件错误免疫性;
·低功耗;
·高性能。
Actel Flash FPGA的保密性特点
保密性特点
Flash FPGA的物理结构与保密性
由于Flash非挥发性的特点,所以基于Flash 架构的FPGA在一个可靠的环境下被编程以后,就不再需要一个另外的码流,因此它不会受到克隆这种攻击方式的威胁。另外,它对反向工程等入侵性攻击有高度的抵抗性,这是因为在Flash
FPGA里面的用户逻辑完全取决于Flash晶体管的内容,就算把器件解体或剥离也只能显露器件内部结构,而不是 Flash 晶体管的实际内容。由于Flash
FPGA表面的一致使它受到入侵性攻击时,很难辨认其探针点。
A3P/E的保密特性
FlashLock可以保证器件上的保密设定不被随便更改 ,它包括一个对应的密钥,长度为128位,其揭露密钥所需的时间为5.4x1023年,因此十分可靠。它还包括永久FlashLock及编程文档的AES加密,其AES密钥长度为128位,而揭露此密钥所需的时间将长达149万亿年。
Flash ROM (FROM) 的特性及应用
第三代Flash FPGA是唯一带片上Flash ROM (FROM)的FPGA,其FROM总共有1024位,分为8个页,每页的宽度为128位,见图2。它的应用非常广泛,包括:互联网协议寻址、设备序列编码、订阅模式、系统校准设定、安全的加密匙存储、资产管理跟踪、用户喜好存储、日期标志及版本控制等。
图2 FROM示意图(略)
保密性功能选项
在新FPGA上进行保密设计时,有几种不同的保密性功能选项可供选择:一、只利用FlashLock密钥进行保护 (没有AES加密),在这个选项下,用户可选择只保护FROM、只保护FPGA阵列或两者同时保护。二、AES
加密加 FlashLock 密钥保护,在这个选项下,AES 密钥一直受到FlashLock密钥保护,所以被AES加密过的文件不会包含FlashLock密钥。三、只加密
FROM、只加密FPGA阵列或两者同时加密,在这个选项下,可以独立地更新FROM及FPGA 或对其编程。编程的格式可以为纯文本格式的
STAPL 文件或经 AES加密过的STAPL文件,在这两种STAPL 文件里,可以只包括 FROM、FPGA阵列或两者同时包括。
保密报头
保密报头包含两种密钥:FlashLock密钥及AES密钥,它也包括FROM及FPGA列阵的信息认证控制。它还包括FPGA阵列与FROM的保密设定。具体的FPGA阵列保密设定包括:写入、擦除及校验的存取控制与加密/不加密的存取控制
(写入、擦除及校验);FROM的保密设定包括:写入、擦除及读取的存取控制(在此情况下校验是一直被允许的)与加密/不加密的存取控制
(写入、擦除及读取)。
信息认证模块(MAC)
信息认证模块负责认证整个编程码流,见图3,包括AES解密核心把STAPL文件解密;MAC检查解密后的数据是否可被认识:如果正确,器件就可以被擦除及编程;如果不正确,软件会防止编程序列被启动。在认证进行过程中器件仍可正常工作。
图3 信息认证模块示意(略)
另外该模块还负责在编程数据传进器件时检验是否存在损坏的数据,具体做法是在编程前对每个数据包进行验证。
实施保密的软件设置
以下我们将介绍如何进行保密的软件设置,首先定制安全级别,如图4所示:
图4 (略)
用户可在生成安全文件时,选择“Custom Level”选项,将弹出“Custom Security Level”对话框,即可看到FPGA阵列与FROM的保密设定选项,具体的选项包括:
——只容许在 FlashLock 密钥正确时写入、擦除及校验;
——只容许在 FlashLock 密钥正确时写入、擦除(校验可以在没有 FlashLock 密钥下进行);
——只容许在器件内有正确的AES密钥时进行写入、擦除及校验(配置器件在重编程和校验FPGA阵列时接受一个被加密的编程文件);
注意:a.要求在器件内有包含正确的AES密钥;b.FlashROM在这个模式下读取被禁止;c.加密过的FlashROM内容只允许进行校验。
——接受没有FlashLock或AES密钥的纯文本STAPL 文件的写入、擦除、读取 (Flash ROM) 及校验。
其次,设定保密包头,如图5所示:
在申请编程文件时点击选择“Security Settings”选项,在弹出的对话框中选择期望的保密设定,并输入FlashLock密钥
(即软件里的Pass Key) 及AES密钥即完成了保密包头的设定。
图5 (略)
最后,编程生成加密编程文件,如图6所示。
图6 (略)
为加密编程设定STAPL文件的具体步骤是:点击选择“Programming previously secured device(s)”选项,在弹出的对话框中点击“FPGA
Array Only”或“FlashROM Only”选项,或者两者并选。最后,在弹出的“Security Settings ”对话框中的相应位置提供预编程时所用的同一个AES密钥。
完整的解决方案
为了配合ProASIC3与ProASIC3E,Actel提供了全面的硬件工具支持。新推出的低成本ISP编程器、启动工具套件(Libero
Gold、FlashPro3、评估板及教程指南和文档)、可进行批量编程的Silicon Sculptor及其他调试工具,如First
Silicon Solution的Logic Navigator逻辑分析器及Synplicity的Identify RTL调试器等。
而全面的软件工具支持包括:Libero 7.0(Gold 版可从网站免费下载)及业界提供的支持,如Synplicity的Synplify、Mentor
Graphics的ModelSim、Magma的PALACE物理综合及WaveFormer Lite的Reactive Testbench等。
Actel公司第三代以Flash为基础的FPGA,除了高的安全性与保密性外,也是一个面向大批量生产的FPGA,它集成了ASIC与SRAM
FPGA所有的优点,包括:单芯片上电即行、非挥发性、低功耗、高安全性、高保密性、固件错误免疫性、片上NVM、低单位成本、低总系统成本、无
NRE费用、可快速构建原型、快速的生产交货期及系统内可编程等诸多优点。
中电网在线座谈网址: http://seminar.chinaecnet.com/051220/jchf.asp。
问答选编
问:以Flash为基础的FPGA是不是不需要上电配置?
答:是的,不需要上电配置。因为FPGA的逻辑配 置和布线资源都是用Flash来实现的,即使掉了 电,这些配置信息还是存在的,所以上电以后完
全没有加载过程 。
问:基于Flash的FPGA有没有容量小、性价比较高 的产品?
答:有。对于ProASIC3家族,我们有A3P030,它的容 量大概有3万门,有700多个触发器。它在容量 方面与CPLD相似,但是却能提供更多的功能特
性。除此之外我们还有EX系列反熔丝的CPLD。
问:Flash-FPGA构成自动控制系统还需要CPU芯片 和执行器件吗?开发软件费用高吗?
答:用Flash-FPGA构成自动控制系统的话,就不需要 用于上电以后执行加载CPU芯片或CPLD,以及 存储配置文件的EEPROM;软件方面,我们的GOLD
版本的license在网上可以免费申请,其他一些 具体的需求可与我们的代理商AVNET、SECOM、 LACEWOOD联系。
问:此种类型的FPGA目前容量有多大?是否可以 达到SRAM配置FPGA的水平?
答:目前我们的第三代基于Flash技术的FPGA的最 大容量是300万门,跟Xilinx和Altera 的高端SRAM- FPGA相比,在容量上还有一些差距,但在我们的
第四代产品里,容量还会有大幅提升。
问:基于Flash的FPGA和基于SRAM的FPGA的根本 区别是什么?
答:从技术结构上看,基于Flash的FPGA的可编程 开关单元是基于Flash的技术,基于SRAM的FPGA 的可编程开关单元是基于SRAM的技术。从外在
表现上看,由于Flash开关是掉电非易失的,而 SRAM开关是掉电易失的,所以基于Flash的FPGA 有如下特点:掉电非易失,单芯片,不需要每次上
电都要配置,没有上电配置电流,高加密性,高可 靠性,低功耗。
问:加密过后的片子就连贵公司的研发人员都不能 将程序读出来吗?
答:是的,这就是产品的安全保护特性。
问:贵公司所说的FPGA成为系统设计的主体,是否 意味着可以不再需要配合其他MPU使用就可完 成MPU的功能,包括嵌入式系统的使用?
答:是的,比如我们最新的Fusion产品,它本身就是 一个SoC产品,可以集成MPU闪存RAM甚至一 些模拟器件。
问:我以前用的是SRAM FPGA,现在要过度到Flash FPGA,应用程序是否可以直接替换?设计工具 是否兼容?
答:如果您的设计使用的是VHDL/Verilog语言,您只 需重新综合您的设计。我们提供了综合工具Synplify 及仿真工具ModelSim,它们是市场内最流行的
EDA工具,我相信您已经对它们非常熟悉。
问:从安全设计来考虑,我们应该选择Actel的反熔 丝FPGA还是Flash FPGA?理由是什么?
答:事实上,Flash提供的安全性及反熔丝FPGA提供 的安全性非常相似。反熔丝的情况略好于Flash FPGA,但Flash
FPGA可进行重复编程,因此很难 确定究竟谁好谁坏。
问:在做数字信号处理算法时,基于Flash的FPGA在 时序控制上是不是比基于SRAM的麻烦?
答:这个倒不会,只是在某些高端SRAM的FPGA里 有专用的乘法器,所以在作某些算法的时候性能 和资源比较有优势。单纯从逻辑电路来讲,都是
一样的。目前我们的第三代Flash FPGA用于实 现一些性能要求不是特别高的DSP算法完全没 有问题,我们以后也会推出有专用DSP部件的
Flash FPGA。
问:永久锁一旦被设置,是否设计者自己都不能改 了?
答:是的,一旦永久锁开启,它就像一个ASIC了,没 有人能够再改变它了。
问:FPGA设计的安全性和ASIC的安全相比,有什么 不足?能超过ASIC或旗鼓相当吗?
答:感觉Flash FPGA (不是SRAM FPGA)的安全性比 ASIC的安全性还要高。ASIC还有可能被作反向 工程破解,俗称“扒片子”,Flash
FPGA因为结构和 技术的原因,作反向工程也没用,而且Flash FPGA 还能提供ASIC不能提供的灵活性。
问:就FPGA的技术而言,SRAM型、反熔丝型和Flash 型FPGA,哪种的安全性最高?成本呢?
答:反熔丝型和Flash型的FPGA的安全性都很高, 反熔丝型又比Flash型FPGA的安全性高,SRAM 的FPGA安全性相当弱,不能应用到需要保护知
识产权的应用中去。关于成本方面,反熔丝型的 系列较多,面向不同应用领域,也有低成本的产 品,如EX系列。Flash型的FPGA特别是第三代
的Proasic3/3E系列,在具备一切Flash技术优点 的同时,在价格敏感的市场应用领域也很有竞 争力。
问:Flash FPGA经128位加密后,FPGA的利用率是否 会降低?
答:不会降低。因为Flash FPGA的加密是这样实现 的:在FPGA内部有个AES-128 解密电路,在用经 过加密后的配置文件对FPGA进行编程时,解密
电路会先对配置文件进行解密然后编程,跟没有 加密的FPGA编程相比,只是先用解密电路对配 置文件进行了解密而已。不加密的FPGA编程
在编程时解密电路被旁路掉了,所以对FPGA的 利用率完全没有影响。
问:Actel的Flash FPGA是否提供网络接口功能模块 软核?
答:可以提供。
问:Actel的FPGA设计安全的主要原理是什么?它 和算法有多大关系?是否主要从硬件方面考虑 ? 可否软硬件结合?
答:主要是因为Actel的Flash和反熔丝技术。除了 Flash FPGA和AES128 算法有一点关系之外,其 余的和算法没有关系,主要是从硬件方面考虑。
如果单纯从Actel的Flash FPGA来看,它的纯硬 件安全是足够了,如果从整个系统来看,可能还 需要软硬件结合。
问:使用APA300中的异步FIFO(16bits宽,深度为256, 检测深度为16)时,同步写60M的时钟,外部CPU 用2M左右频率的异步读。在使用它读大量的数
据时,出现前16个数据有时是乱的,后面的数据 位置前移但没有错误,请问可能是什么原因造成 的?布局布线后,时间分析器的结果是满足频率
要求的。
答:这可能是因为FIFO接口的建立/保持时间不足 引起的。
|