安全已成为如今的热门话题。对于电子设计工程师来说,最大的威胁莫过于市场上出现由于设计盗版而引起的大量假冒产品。根据反盗版联盟(Anti-CounterfeitingCoalition)的统计,2003年,全美国涉及盗版的交易额达287O亿美元,占全球盗版产品年销售总量(4560亿美元)的63%。本文将介绍能够保护低成本FPGA设计的安全措施。三大安金威胁电子设计中最常见的侵权行为就是反向工程。当盗版者以在公开市场低价销售为目的而企图重新设计或制作
安全已成为如今的热门话题。对于电子设计工程师来说,最大的威胁莫过于市场上出现由于设计盗版而引起的大量假冒产品。根据反盗版联盟(Ant i-CounterfeitingCoalition)的统计,2003年,全美国涉及盗版的交易额达287O亿美元,占全球盗版产品年销售总量(4560亿美元)的63%。本文将介绍能够保护低成本FPGA设计的安全措施。
三大安金威胁
电子设计中最常见的侵权行为就是反向工程。当盗版者以在公开市场低价销售为目的而企图重新设计或制作某产品时,这种行为就会发生。通过反向工程,盗版者能够非常迅速地完成设计,由于无需研发经费,因此成本可以很低。
目前,许多公司采取了外包生产的方式,因而面临着两种新侵权行为的威胁,即超量生产和克隆。在超量生产中,承包制造商只需生产出多于OEM(原始设备制造商)订货量的产品,这些超量生产的产品会在未经OEM授权的情况下售出。
克隆是指盗版者以相同或不同的品牌复制设计、IP或产品。同样,克隆者不必花费任何研发成本。而且,超量生产和克隆的产品都能快速上市。
还未得到重视的是与这类侵权行为有关的无形资产流失。无论产品遭到反向工程、超量生产还是克隆,都意味着OEM销售额的重大损失。除了损失销售额,还会发生以退货量形式表现出来的质量成本,可能会影响品牌形象。并且,随着RMA(退货授权书)数量增多,OEM需要提供技术支持以确定症结所在并解决最终客户的问题,又进一步增加了成本。最终,产品可能变得真伪难辨。这些都是无法补偿的永久性损失。
使用DeviceDNA实现安全功能
传统的FPGA使用比特流加密技术来防范反向工程和克隆。虽然以往的效果不错,但现在,比特流加密已无法保护设计免遭超量生产的侵权。
为了保护设计不被以上三种行为所盗版,Xilinx提供了几种解决方案,并在最近推出了带有DeviceDNA的Spartan-3A和Spartan-3AN器件系列,可帮助防范克隆者、超量生产者和反向工程者。这种DeviceDNA设计级安全功能可以保护设计、IP和嵌入式代码。DeviceDNA是一种特殊的57位ID,对于每个器件都是独一无二的。这种57位ID是在Xilinx工厂中固化或设定的,因而不能更改。Spartan-3A和Spartan-3AN两种FPGA在每个出厂的器件中都包含独一无二的ID。
然后,该ID会与设计师的个性化算法结合起来储存在FPGA上。该算法基本上是一个算术方程式,它规定如何提取DeviceDNA,并创建一个结果。此结果可以存储在任何地方,如外部存储器或Flash中。该算法是安全性的秘密所在,因为只有设计师才知道它。尽管它存储在FPGA上,但在旁观者看来,这只是一部分比特流。
Spartan-3A的安金性
对于Spartan-3A器件,该算法将使用DeviceDNA的结果与器件配置后存储在Flash中的结果相比较。如果二者匹配,则认可该设计。如果二者不匹配,该设计会被设置成多种行为方式,从轻微故障到严重功能障碍。
为了便于理解,可以把DeviaDNA比作ATM银行卡,把个性算法比作ATM卡的密码。其潜在的弱点是,可能出现有人同时得到了ATM卡和密码的情况。这个性化算法一旦为人知晓便很容易被克隆,这正是设计本身集成授权算法的原因。该算法置于可编程逻辑内部最隐秘的位置,可以选择数百万种配置方案。
Spartan-3AN的安全性
对于Spartan-3AN平台(即新型非易失性FPGA平台),此过程大同小异,只是有几个增强项。第一个安全增强项是,比特流隐藏在FPGA内部。这样更难于被人窥见。
Spartan-3AN FPGA的第二个安全增强项是两个特有的序列号,即DeviceDNA和工厂预设FlashID,存储在Flash中。这两个特有的ID提供长达70个字节的序列号,可产生大量可能的算法,从而延长了破解认证算法所需的时间。于是,设计既要受FPGA约束,又要受Flash ID的约束。
第三项改进是在存储的授权代码中。在Spartan-3AN平台上,可以将授权代码存储在片上一个叫做flash用户字段的专用一次性可编程64字节寄存器中。这样可使整个安全系统自成一体。由于不需要外部接口或存储器,整体安全性得以提高,使反向工程更加困难。
该认证算法由用户定义,这使用户能在设计预算内实现恰当的安全等级。该认证算法也是安全系统中的主要秘密。认证过程中必须有不为人知的秘密,才能保护安全系统不被破解。因为算法是未知的,所以它是设计级安全性的关键。算法是在FPGA架构中实现的,因此便成为FPGA中数百万配置位当中的少数几个配置位。除非知道这些位如何组合在一起,或者知道是哪种算法,否则这看起来仅仅是一堆数字。应用Spartan-3AN器件的一种可能的流程如图1所示。