这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » Stratix III器件的设计安全性-技术白皮书

共1条 1/1 1 跳转至

Stratix III器件的设计安全性-技术白皮书

工程师
2008-07-02 17:34:37     打赏

引言

随着越来越多的系统采用FPGA来实现核心功能,保护FPGA中的设计和知识产权(IP)变得更加重要了。Altera®Stratix®III是第一款使用高级加密标准(AES)的高密度、高性能FPGA,它采用非易失和易失密钥设置来保护设计不被复制、逆向剖析和篡改。为了使Stratix III设计安全解决方案更加安全,保护AES密钥,Altera采用了多种安全特性。在设计阶段,外请安全顾问研究了这一解决方案,Altera根据他们的反馈进行了改进。本白皮书详细说明Stratix III设计安全解决方案所提供的安全保护功能。

 

基于SRAMFPGA设计安全性

基于SRAMFPGA是易失器件,需要外部存储器来存储其配置文件,这带来了三种安全问题:复制、逆向剖析和篡改。

 

复制

复制FPGA是获得设计的相同复本,不需要理解它是怎样工作的。可以通过从存储器件中读取设计,或者上电时,在存储器将配置文件发送到FPGA的过程中捕获配置文件来复制器件。被盗取的设计可以用于配置其他FPGA。这种方法是IP盗窃的基本形式,会大大损害设计人员的利益。

 

逆向剖析

逆向剖析分析配置文件,在寄存器传送级(RTL)或者以原理图的形式重新得到最初设计。对得到的设计进行修改后就可以赢得竞争优势。这类IP盗窃要比复制更复杂,通常需要一定的专业技术,而且很耗时,占用大量的资源,有时候要比从头开始进行设计更费事。

 

篡改

篡改是对存储在器件中的设计进行修改或者以不同的设计进行替换。篡改后的器件会含有恶意设计代码,能够导致系统出现故障,或者盗取敏感数据。这类设计安全问题是军事、金融和博弈等领域特别关心的。目前的消费类市场也存在篡改问题,对设计进行修改后便可以使用未授权的或者高级服务。

 

Stratix III设计安全解决方案

Stratix III器件是基于SRAMFPGA。为实现设计安全性,Stratix III FPGA使用一个256位安全密钥,对配置比特流进行加密。如图1所示,可以在Quartus II软件中综合、适配和时序分析后,进行这些安全配置。因此,硬件设计人员在Mentor Graphics Precision Synthesis软件中对设计优化后,使用安全配置功能,在Mentor Graphics ModelSim®仿真软件中验证设计能够应用安全密钥。

1.安全配置流程

 

可以采用以下三步来实现安全配置:

1.将安全密钥设置到Stratix III FPGA中:Quartus®II软件需要256位用户定义的密钥(Key 1Key 2)来产生密钥设置文件。通过JTAG接口将含有Key 1Key 2信息的密钥设置文件装入到Stratix III FPGA中。Stratix III内置AES加密引擎以Key 1Key 2进行加密,产生实际的密钥(用于步骤3中解密配置数据)。在将实际密钥存储到256位密钥存储器之前,采用专用函数对其进行处理,这些存储器可以是易失(基于SRAM)或者非易失(基于多状态熔丝)器件。

 

2.对配置文件进行加密,将其存储在外部存储器中:Quartus II软件需要步骤1中使用的同一256位用户定义的密钥(Key 1Key 2)来加密配置文件。Quartus II AES加密引擎以Key 1Key 2进行加密,产生实际的密钥。实际密钥用于对配置文件进行加密。然后,将加密后的配置文件装入到外部存储器中,例如配置或者闪存器件。

 

3.配置Stratix III FPGA在系统上电时,外部存储器向Stratix III FPGA发送加密配置文件。置反专用函数来处理Stratix III FPGA中的256位密钥,以产生实际密钥。Stratix III内置AES解密引擎使用实际密钥来解密配置文件,对自己进行配置。

 

Stratix III密钥配置方案

Altera通过JTAG接口提供不同类型的设计安全密钥配置方案,支持板上和板外密钥设置。

 

1Stratix III设计安全应用笔记中含有设置易失和非易失密钥的步骤。请联系您当地的Altera销售代表,了解详细信息。

 

AES加密算法

AES是联邦信息处理标准(FIPS-197),经过认证,美国政府组织利用这一技术保护敏感的、列入密级的信息。全球范围内商业系统也广泛采用了该标准。

 

AES是一种对称分组密码,以128位为一组进行数据加密解密。加密后的数据进行了一系列变换,包括字节替换、数据混合、数据移位和置入密钥等。AES有长度不同的三种密钥:128位、192位和256位。Stratix III FPGA采用了256AES密钥,同时保证安全性和效率。据国家标准和技术研究所(NIST)的研究,如果有人能够发明在几秒内解密数据加密标准(DES)密钥的机器,那么这一机器需要花费149万亿年来解密一个256AES密钥。Stratix III AES实施方案经认证,符合FIPS-197标准。

 

AES解密模块

解密模块的主要功能是:

确定配置数据是否需要进行解密

确定安全模式

如果需要,解密数据流,解压缩数据,否则,对器件进行配置。

 

在接收到加密数据之前,256位安全密钥必须装入并存储在器件中。您可以选择使用非易失安全密钥或者带电池供电的易失安全密钥。非易失密钥和多状态熔丝密钥验证位(用于指明有多状态熔丝密钥)被存储在一次编程多状态熔丝中,而256位易失密钥和易失密钥验证位(用于指明有易失密钥)存储在易失密钥寄存器中,采用外部电池对其进行供电。

 

密钥存储

安全密钥被存储在Stratix III FPGA中的易失密钥寄存器和多状态熔丝中。多状态熔丝为非易失,一次可编程。需要外部后备电池来进行易失密钥存储,在器件关电时对其进行供电。在普通生产流程中,FPGA在板上(易失和非易失密钥)或者不在板上(仅非易失密钥)时,都可以将安全密钥设置到Stratix III FPGA中。

 

Stratix III FPGA提供的安全保护

采用配置比特流加密,可以保护Stratix III FPGA设计不被复制、逆向剖析和篡改。

 

防止被复制的安全特性

通过任何接口都不能读出Stratix III FPGA中的安全密钥。存储了安全密钥的多状态熔丝和易失密钥寄存器隐藏在数百个其他多状态熔丝金属层下面。简单的视觉检查很难确定某一熔丝或者寄存器的功能。对密钥位进行了加扰,分布在FPGA的其他逻辑中间。此外,其他功能的密钥存储设置状态随器件各不相同。随机性使得更难发现哪一熔丝或者寄存器存储了安全密钥。而且,即使找到了密钥存储的地方,由于在存储密钥之前,采用专用函数对实际密钥进行了处理,也无法获得解密用的实际密钥。不知道实际密钥,不能对设计进行解密。

 

Stratix III FPGA不支持配置文件读回,防止了在FPGA中解密配置文件后的读回攻击。

 

将安全密钥设置到另一FPGA中,采用一个加密配置文件对其进行配置也无法复制Stratix III设计。需要两个256位密钥才能将安全密钥设置到Stratix III FPGA中。由于AES被用于产生实际密钥,事实上不可能从安全密钥中产生Key 1Key 2。还没有发现AES弱密钥。

 

防止被逆向剖析的安全特性

即使不加密,从配置文件中对任何Stratix III设计进行逆向剖析都非常困难,而且很耗时。Stratix III配置文件含有数百万个比特,配置文件格式是专有的,没有公开。要对

Stratix III FPGA提供的安全保护

采用配置比特流加密,可以保护Stratix III FPGA设计不被复制、逆向剖析和篡改。

 

防止被复制的安全特性

通过任何接口都不能读出Stratix III FPGA中的安全密钥。存储了安全密钥的多状态熔丝和易失密钥寄存器隐藏在数百个其他多状态熔丝金属层下面。简单的视觉检查很难确定某一熔丝或者寄存器的功能。对密钥位进行了加扰,分布在FPGA的其他逻辑中间。此外,其他功能的密钥存储设置状态随器件各不相同。随机性使得更难发现哪一熔丝或者寄存器存储了安全密钥。而且,即使找到了密钥存储的地方,由于在存储密钥之前,采用专用函数对实际密钥进行了处理,也无法获得解密用的实际密钥。不知道实际密钥,不能对设计进行解密。

 

Stratix III FPGA不支持配置文件读回,防止了在FPGA中解密配置文件后的读回攻击。

 

将安全密钥设置到另一FPGA中,采用一个加密配置文件对其进行配置也无法复制Stratix III设计。需要两个256位密钥才能将安全密钥设置到Stratix III FPGA中。由于AES被用于产生实际密钥,事实上不可能从安全密钥中产生Key 1Key 2。还没有发现AES弱密钥。

 

防止被逆向剖析的安全特性

即使不加密,从配置文件中对任何Stratix III设计进行逆向剖析都非常困难,而且很耗时。Stratix III配置文件含有数百万个比特,配置文件格式是专有的,没有公开。要对Stratix III设计进行逆向剖析,首先要对FPGA进行逆向剖析,或者使用Quartus II设计软件来揭示从配置文件到器件资源的映射。

 

Stratix III FPGA本身进行逆向剖析也非常困难。Stratix III FPGA采用最先进的65nm工艺技术在TSMC进行制造。与ASIC不同,仅有标准工具和知识还不能逆向剖析这些前沿的FPGA。逆向剖析Stratix III FPGA中的一个逻辑模块、找到FPGA中的密钥位置就需要花费大量的时间和资源。

 

对比特流加密后,更难进行逆向剖析。找到安全密钥来解密配置文件和对其进行复制一样困难。从头开始一个竞争设计,可能要比逆向剖析一个安全Stratix III设计容易得多。

 

防止被篡改的安全特性

非易失密钥为一次可编程。一旦设置了篡改保护位,FPGA只能接收采用相同密钥加密的配置文件。而且,不允许进一步设置密钥。试图采用未加密配置文件或者以错误密钥加密的配置文件来配置Stratix III FPGA都会导致配置失败。不论是在外部存储器中,在外部存储器和FPGA之间进行传送或者远程连接系统更新期间,出现配置失败都表明有可能出现了设计篡改。

 

所支持的配置方案

当外部主机(例如,MAX® II或者微处理器)采用快速被动并行(FPP)配置模式,或者使用主动串行(AS)和被动串行(PS)配置方案来配置Stratix III FPGA时,都可以应用设计安全特性。如果您使用增强配置器件FPP或者基于JTAG的配置来配置您的Stratix III FPGA,则不支持设计安全特性。根据加密Stratix III器件时所选择的安全模式,器件将只支持所选择的配置方案。

 

f 关于Stratix III器件所支持的安全模式以及每一安全模式相应配置方案的详细信息,请参考Stratix III器件手册Stratix III器件设计安全性一章:www.altera.com/literature/hb/stx3/stx3_siii51014.pdf

 

结论

Stratix III FPGA利用多种安全特性,提供可靠的设计安全解决方案来保护设计人员的知识产权,防止被篡改,使这类器件非常适合保密通信和一般军事应用。设计人员利用这些安全特性,能够迅速安全地向客户交付采用Mentor Graphics以及Altera设计和验证工具设计的产品,无风险的在客户中推出创新产品,在竞争中突出自己的产品优势。




关键词: Stratix     器件     设计     安全性     技术     白皮书         

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]