利用安全存储器实现FPGA设计安全解决方案
2008-12-17
作者:Altera公司
由于很容易捕获到配置比特流并进行复制,因此,FPGA设计很难防范设计窃取。对于窃取知识产权(IP)而言,从比特流中提取出IP几乎不可能,但是却能从FPGA中克隆整个设计。为了保护配置比特流,有的FPGA现在能够对比特流进行加密。然而,对于不具备通过嵌入式比特流加密手段来加密配置比特流的FPGA而言,需要在生产过程中增加步骤对FPGA中的密钥进行编程,因此提高了成本。对于大批量应用,使用安全辅助芯片" title="辅助芯片">辅助芯片的性价比会更高一些。
本文提供了解决方案来保护FPGA设计不被克隆。利用“识别、朋友或者敌人(IFF)”的设计安全方法,在FPGA中和安全存储器" title="安全存储器">安全存储器中的哈希计算结果匹配之前,这一方案禁用FPGA中的设计,因此,即使捕获到配置数据比特流,设计也是安全的。在这一解决方案中,安全存储器是FPGA的安全辅助芯片。
设计实现
在IFF概念中,采用了安全辅助器件来计算哈希算法。Dallas半导体公司的安全存储器DS28E01结合了1024位EEPROM和符合ISO/IEC 10118-3安全哈希算法(SHA-1)的“挑战-响应”认证安全方法。DS28E01是一线接口器件,因此这一解决方案只需要一个FPGA I/O引脚。安全存储器需要采用上拉电阻和一线I/O引脚连接。
图1所示为采用了IFF概念的设计安全参考设计" title="参考设计">参考设计的顶层结构图。安全存储器SHA-1引擎根据存储在安全存储器中的密钥来计算哈希算法,该密钥是FPGA产生的随机数" title="随机数">随机数,在安全存储器中具有唯一的ID。
图1 采用了IFF概念的设计安全解决方案
在使用FPGA时,SHA-1 IFF模块中有安全存储器中的匹配密钥,能够根据和安全存储器中SHA-1引擎相同的输入来计算SHA-1算法。配置完FPGA后,不会启用用户设计。只有当安全存储器和FPGA中的哈希计算结果相匹配时,SHA-1 IFF模块才会使能用户设计。
系统一旦上电" title="上电">上电,以嵌有SHA-1 IFF参考设计的用户设计配置完FPGA后,FPGA产生一个随机数,把它发送给安全存储器。FPGA读取来自DS28E01的160位消息认证码(MAC)计算结果,将其和FPGA SHA-1 IFF引擎MAC结果进行对比。如果MAC结果匹配,SHA-1 IFF模块使能用户设计,如果不匹配,则禁用它。图2所示为采用了IFF概念的设计安全流程。
这一参考设计为用户利用FPGA来设置DS28E01器件提供了其他方法。FPGA配置完成后,它支持FPGA向安全存储器发送密钥,在生产过程比较安全的地方进行设置。
图3所示为通过FPGA对DS28E01编程的设计安全流程。
一旦使能用户设计后,关断SHA-1 IFF引擎模块以降低功耗。用户可以连接外部逻辑或者状态机来复位SHA-1 IFF引擎,再次启动工作。一旦使能信号变为高电平,SHA-1 IFF引擎模块则不断计算并检查SHA-1算法。
设计组成模块
这一解决方案的参考设计含有三个主要模块:
· SHA-1引擎:这一模块计算SHA-1算法,进行安全认证。它接收安全存储器通过一线接口传送来的设计,将其和MAC结果进行对比。只有当哈希计算结果和安全存储器中SHA-1引擎的哈希计算结果匹配时,才使能用户设计。
· 随机数发生器(RNG):当复位信号置位SHA-1引擎模块时,RNG为该模块产生一个随机数。SHA-1 IFF参考设计使用了一个8位RNG块。SHA-1引擎模块处理这一8位随机数,转换成40位随机数据,进行哈希计算。
· 一线接口:这一模块支持FPGA中参考设计和安全存储器之间的数据传送。
用户设计模块
SHA-1 IFF引擎系统时钟频率的典型值FMAX是100MHz,或者更低。用户必须向参考设计输入SHA-1 IFF引擎频率,从而保证数据在FPGA和安全存储器之间正确地发送和接收。用户可以为SHA-1 IFF引擎和用户设计提供不同的时钟。
解决方案的安全性
上电时,当FPGA中的配置数据比特流在FPGA和外部存储器之间传送时,可以捕获到它。利用捕获到的配置数据比特流,配置另一FPGA器件,就可以复制这一FPGA设计。这一方案可以确保克隆器件无法工作,从而保护了用户设计。如果没有正确的密钥和哈希算法计算结果,则会一直禁用FPGA中的用户设计。
为了将设计克隆到另一FPGA设计中,必须克隆密钥和安全存储器的唯一ID。这很难实现,因为不能读出DS28E01密钥,也无法从MAC结果中反向篡改SHA-1算法来确定密钥。
结 论
即使捕获了配置数据比特流,这一FPGA设计安全IFF解决方案也能保护Altera? FPGA设计不被克隆。在FPGA中和安全存储器中的哈希计算结果匹配之前,一直禁止用户设计。这一设计安全解决方案保护了FPGA设计人员的IP。