首页 | 期刊简介 | 编辑部 | 广告部 | 发行部 | 在线投稿 | 联系我们 | 产品信息索取
2024年11月21日星期四
2011年第01期
 
2010年第12期
 
2010年第11期
2010年第11期
 
2010年第10期
2010年第10期
 
2010年第09期
2010年第09期
 
2010年第09期
2010年第08期
 
2010年第07期
2010年第07期
 
2010年第06期
2010年第06期
 
2010年第05期
2010年第05期
 
2010年第04期
2010年第04期
 
2010年第03期
2010年第03期
 
2010年第02期
2010年第02期
 
2010年第01期
2010年第01期
 
2009年第12期
2009年第12期
 
2009年第11期
2009年第11期
 
2009年第10期
2009年第10期
 
2009年第9期
2009年第9期
 
2009年第8期
2009年第8期
 
2009年第7期
2009年第7期
 
2009年第6期
2009年第6期
 
2009年第5期
2009年第5期
 
2009年第4期
2009年第4期
 
2009年第3期
2009年第3期
 
2009年第2期
2009年第2期
 
2009年第1期
2009年第1期
 
2008年第12期
2008年第12期
 
2008年第11期
2008年第11期
 
2008年第10期
2008年第10期
 
2008年第9期
2008年第9期
 
2008年第8期
2008年第8期
 
2008年第7期
2008年第7期
 
2008年第6期
2008年第6期
 
2008年第5期
2008年第5期
 
2008年第4期
2008年第4期
 
2008年第3期
2008年第3期
 
2008年第2期
2008年第2期
 
2008年第1期
2008年第1期
以 Flash 为基础的FPGA实现高度安全设计

Using FPGA Based on Flash to Realize Highly Security Design

Actel 公司


保密的重要性

对电子系统而言,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接口的建立/保持时间不足 引起的。

《世界电子元器件》2006.2
         
版权所有《世界电子元器件》杂志社
地址:北京市海淀区上地东路35号颐泉汇 邮编:100085
电话:010-62985649
E-mail:dongmei@eccn.com