如何永远永久地将架构保存在fpga ic中


8

考虑到我做了一个架构来做一些特定的事情,例如以vhdl编写。

我可以将它永久地烧入fpga芯片吗?还是知道已知可以从串行闪存读取的事实,如何保护知识产权?

Answers:


12

Xilinx Spartan 3AN FPGA具有内部闪存,使其非易失性。您的问题实际上是多个问题。

1)FPGA是易失性还是​​非易失性?大多数是易失性的,每次开机时都需要从外部非易失性存储设备将配置位流读入FPGA。有些是非易失性的。就像我提到的Xilinx S3AN。

2)如何保护配置比特流?这个问题有多个答案。

您可以加密比特流;这意味着存储在上述非易失性存储设备上的比特流是唯一的密文,只能由单个fpga用适当的密钥解密。这将保护比特流的功能不被逆向工程发现。也就是说,即使能够从原位或更具有破坏性的手段从非易失性存储设备中提取加密的比特流,由于提取的文件是加密的,因此也将无法从中提取感觉。

您还可以将比特流设置为禁止回读。通常在调试时用来对FPGA进行编程的JTAG接口通常可用于从fpga中读取配置位流。设置NO_READBACK选项将禁止这样做。


1
如果无法解密,FPGA本身如何读取加密的位流?答案当然可以解密比特流。这有点困难,因为它被混淆了。
ntoskrnl 2014年

??明文比特流(称为Bpt)由加密函数Ek()加密,该函数采用明文和密钥(称为Key)创建密文比特流(称为Bct),因此Bct = Ek(Bpt,Key) 。它被存储,并在启动时被传输到FPGA,后者知道密钥,因此可以解密它,Bpt = Ek(Bct,Key)。没有密钥,第三方将无法执行解密操作。给定处理时间和其他密码分析工具,第三方可能会找出明文,但不会通过预期的解密过程。
开心的2014年

攻击者也可以简单地找到密钥,然后继续解密明文。我猜想很难从硬件(例如智能卡)中恢复密钥,但是如果将密钥存储在某种常规内存中,那么恢复密文就不难了。
ntoskrnl 2014年

1
是的,加密仅与密钥安全一样安全。我无法与非Xilinx FPGA对话,但是在Xilinx FPGA上,密钥无法通过非侵入性/非破坏性措施来恢复。
开心的2014年


7

可以找到具有集成非易失性程序存储器的FPGA。例如,Microsemi(以前称为Actel)专门研究这种类型的设备。

其他供应商提供了对FPGA进行掩膜编程的选项。例如,赛灵思称其掩模编程器件为“ EasyPath ” FPGA。据我所知,这确实需要支付NRE,所以它不适用于可能需要更新设计的情况。(更正alex.forencich的提示)


2
EasyPath FPGA并非经过掩码编程,它们仅针对您的比特流进行了定制测试,从而降低了测试成本并提高了产量(它们可以容忍您的设计不使用的组件中的缺陷)。FPGA仍然需要加载您的设计的配置闪存才能正常工作。如果实际上是通过掩膜编程,那么NRE将会是巨大的。
alex.forencich 2014年

6

我至少可以代表Altera,我认为Xilinx会有类似的想法。他们可以选择加密您放入外部闪存或EEPROM中的文件。然后,使用其非易失性或电池后备密钥存储将解密密钥加载到Altera部件中。

由于您无法读出密钥,因此可以保护您的IP。他们因为无法保护人们的IP而失去了赢得Asics的设计大奖,所以这是一个非常普遍的功能。

http://www.altera.com/devices/fpga/stratix-fpgas/about/security/stx-design-security.html


0

实现此目的的唯一方法是购买单独的Flash模块(如果您在PGA上还没有模块)并将代码加载到ram中,但是不建议所有麻烦的事情,如果您购买CPLD之类的东西,如果您无意重新编程,请在以后计划重新编程或使用ASIC。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.