动机开发电子产品,包括嵌入式FPGA的配置代码,其成本是相当高的。因此应当防止未经授权的机构对这些设计和配置进行拷贝,以保护设计者的知识产权。有很多种方法能实现这样的保护功能。如在Xilinx Virtex-II®和Virtex-4®这类的高端FPGA中,支持对配置数据流的加密 *** 作。这样仅当FPGA中含有相同的密钥时,这些数据流才可以工作。但是这种加密的方法对更为广泛的、对成本很敏感的应用场合来说不甚合适。因此,这里利用另一种可行的身份识别法来防止意外拷贝。这种方法对所有FPGA家族都适用,包括低端的Xilinx Spartan-3®系列FPGA。 前提在身份识别的概念中,要求FPGA的设计者实现与一个安全存储器通讯的功能以进行认证工作。图1是实现该设计的一个简化原理图。
图1. Dallas Semiconductor的1-Wire存储器件为FPGA提供安全控制和保护的简化框图
安全存储芯片需满足下列要求:
- 包含用于芯片内部 *** 作的密钥,该密钥对外界不可见。
- 包含一个唯一的不可改变的识别号。可用该识别号来计算一个与设备绑定的密钥。
- 能够进行包含密钥、随机数(用做质询机制)、唯一识别号及附加数据(常数)在内的HASH运算。
- 不可逆—要使从一个HASH结果逆推出与之相关的输入数据在计算上是不可行的。
- 防“碰撞—使用另外一组输入数据来产生一个相同的HASH结果是不可行的。
- 具有极高的雪崩效应—输入数据的任何变化,都会极大的影响到HASH运算结果。
DS28E01-100和DS2432是Dallas Semiconductor提供的内置SHA-1算法的安全存储器。这些器件的1-Wire接口非常适合此类应用,因为他们只需FPGA的一根引脚就可实现这些功能。
FPGA需实现下述功能,以利用这些器件的安全特性:
- 产生随机数。
- 知道一个用于芯片内部运算的密钥,且该密钥对外界不可见。
- 同安全存储器一样进行包含密钥、随机数、附加数据及器件识别号在内的HASH计算。
- 比较HASH计算结果。
- 产生一组随机数并作为一个质询机制(Q)发送给安全存储器。
- 向安全存储器发出指令,要求其计算一个基于密钥、质询机制、唯一识别号和固定附加数据的HASH结果。
- FPGA本身计算一个基于其自身存储密钥、发送给安全存储器的相同数据和固定附加数据的期望HASH结果(E)。
- 读取由安全存储器件所计算出的HASH结果作为响应(A)与期望HASH结果(E)做比较。
由OEM来对这类器件在分发到CM手上之前进行编程是不方便或不可行的。为了能较好的解决该问题,Dallas Semiconductor为OEM客户提供SHA-1密钥及EEPROM阵列的预编程服务。在这种服务下,Dallas Semiconductor的工厂按照客户的要求对这类器件进行注册和配置,然后Dallas Semiconductor直接把器件运到CM手里。这类服务的优势如下:
- OEM无需向CM泄漏SHA-1密钥。
- OEM无需执行系统预编程。
- 只有经过OEM授权第三方才可以访问登记的器件。
- Dallas Semiconductor保存发送单元的数量纪录,以备OEM查账之需。
另一个至关重要的安全因素是随机质询机制Q。一个可预测的质询机制(如一个常数)会引发一个可预测的响应结果,因为该结果可被记录,然后由一个微控制器来取代安全存储器。在这种可预测的情况下,微控制器可以让FPGA认为其是一个“友方”电路。而随机的质询机制消除了这种可能性。
如果为每个器件绑定一个唯一密钥就可以进一步提高安全级别。唯一密钥由公共密钥(主密钥)、器件的唯一识别号和由应用所指定的常数计算得来。在这种条件下,如果有一个密钥被破解,则只会有一个器件受到影响,从而不破坏整个系统的安全性。为实现这种功能,FPGA需要知道主密钥,并在计算期望响应(E)之前计算存储器所用的密钥。 更多内容这里提供的信息在一个相当抽象的水平上给出了通过FPGA和安全存储器实施的IFF认证的概念。 欲了解更多信息,请参见以下文件:
- 应用笔记3675,"保护您的研发成果—双向认证及软件功能保护"(安全和系统方面)。
- 应用笔记1201,"白皮书8:1-Wire SHA-1概述" (HASH,SHA-1,可信任令牌,交易细节,信息和产品数据资料的进一步链接)。
- XILINX应用笔记XAPP780, "FPGA IFF Copy ProtecTIon Using Dallas Semiconductor/Maxim DS2432 Secure EEPROMs" (概念的成功实施,如何用FPGA执行的详细资料)。
- 安全散列标准(English only),联邦信息处理标准出版物180-1。
- 应用笔记178,"利用1-Wire产品标识印刷电路板" (概念,定义数据,外部测点)。
- 应用笔记3522,"白皮书9: SHA-1器件的安全性是否依然足够安全?" (防“碰撞”,对SHA-1摘要的攻击)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)