打印

请教:怎样对fpga设计进行加密?

[复制链接]
33335|81
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
钻研的鱼|  楼主 | 2011-2-17 08:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前的克隆手段日益发达,辛辛苦苦设计出来的电路很快就被拷贝了,pcb现在一条龙服务,芯片解密的广告满天飞。特别是fpga的设计,开发过程难度大,周期长,费用高,但只要把外面配置芯片的内容一读,你的知识产权顿时化为乌有。altera和xilinx目前的器件,如果是cpld型,保密性能好,但容量太小。sram型的fpga,外面的配置芯片很容易被拷贝,有没有简单可行的方法,用在fpga上,让**芯片的难度加大?
评分
参与人数 1威望 +1 收起 理由
zhangqc04 + 1

相关帖子

来自 2楼
dan_xb| | 2011-2-18 14:00 | 只看该作者
对于这个问题,解释是这样的:

1. CPLD就不说了,虽然你可以选加密,其实用途不大,别人依然可以通过开核,通过显微镜来绕过;你要知道,现在中国也就这些技术比较牛

2. 高端的FPGA可以选择AES加密,这个加密是把一个密钥写到FPGA内部,通过电池或者Flash来保存,加载的时候再实时解密。这个安全性是很高的,不用怀疑。但是只有高端芯片带这个。另外,也建议尽量使用电池来保存密码,虽然Flash/反熔丝要更方便,但是别人解开也方便。。。。

3. 有一个误解是Spartan-3AN的内部Flash可以读保护,其实是不行的,Spartan-3AN的那个Flash和放在外面的Flash没有什么本质的不同,你也可以通过写一个简单的工程把Flash的内容读出来。
Spartan-3AN的加密方式是使用内部的DNA,也就是一个序列号。这个其实很简单,你用一个工程读取DNA,然后通过你特殊的加密算法,生成一个KEY,写到Flash里面的某个位置。
每次工作的时候,都去读一下FLash里面的KEY,看看对不对,不对就拉低Reset。
这个几乎是不可能被**的,因为你根本找不到加密的位置。

使用特权

评论回复
评分
参与人数 4威望 +16 收起 理由
xiaoyuan_ly + 1
STARM + 1
涛行九天 + 8 说的到位
SuperX-man + 6
板凳
sleepybear| | 2011-2-17 09:11 | 只看该作者

使用特权

评论回复
地板
TOTO无烦忧| | 2011-2-17 10:48 | 只看该作者
除此之外,也可以用Spartan3AN,配置芯片也在内部

Virtex和大的Spartan6 的bit文件可以进行AES加密

另外,也可以用Partial Reconfiguration的方法,先在FPGA内加载一个基本框架,再通过自己的解密技术把剩下的逻辑配置进去。

使用特权

评论回复
5
sleepybear| | 2011-2-17 12:55 | 只看该作者
PR那个,据我了解,不同的功能还是烧在flash里的啊。

使用特权

评论回复
6
ty新气象| | 2011-2-17 22:16 | 只看该作者
也想知道呢。

使用特权

评论回复
7
爱在2012| | 2011-2-17 23:03 | 只看该作者
了解一下。

使用特权

评论回复
8
钻研的鱼|  楼主 | 2011-2-18 08:19 | 只看该作者
内嵌flash的spartan3AN倒是不错的选择,但xilinx在这个型号上为用户考虑得很少,xc3s50AN容量太小,换个大容量的,却都是BGA封装。
    AES加密不是很了解,我开始以为每个器件有一个独一无二的ID,只要针对ID生成一个独一无二的程序,即使把flash的程序解密
也无用,但目前我还没发现这种方式,同时这种方式在大批量生产也会有问题,但如果量小,这种方式却最简单和高效。
   altera推荐了一个外加dallas的芯片进行程序保护,或者外加一个CPLD进行保护,也有点复杂。
   欢迎推荐更好的方案

使用特权

评论回复
9
SuperX-man| | 2011-2-18 14:17 | 只看该作者
楼上的这个方法好正点!!!!顶

使用特权

评论回复
10
TOTO无烦忧| | 2011-2-18 14:28 | 只看该作者
如果已经不考虑BGA的Spartan,估计LZ不会考虑AES的Virtex了。还是写在这里让大家参考一下。

AES是用加密算法将bit文件加密,然后另外产生一个private key。这个Private key可以通过efuse方法编写到FPGA里,也可以通过电池供电让FPGA保持记录这个Key。加密的bit文件+key才可以正常配置FPGA。
因为Private key不可能被读回或者被别人取得,所以这样就能保护你的文件。

楼上的方法虽然已经很难被**,但是由于Spartan3AN的Dual Die结构,要**还是可以的,只是成本变高了。我们通常人为**成本>自己做一个新的design的成本,那么加密就算是可以用的了。

使用特权

评论回复
11
jameswangchip| | 2011-2-18 14:30 | 只看该作者
:'(朋友,你是否用过反熔丝的!

使用特权

评论回复
12
dan_xb| | 2011-2-18 17:14 | 只看该作者
呃,对于这个问题,我其实看过剖开芯片拍摄的照片。
相信我,反熔丝写过和没写过,一眼就能看出来。
而且,因为制造工艺的原因,你很容易把反熔丝的区域和一般的晶体管区别开。。。。

使用特权

评论回复
13
nongfuxu| | 2011-2-18 23:59 | 只看该作者
也可以用FLASH在FPGA内的芯片,比如LATTICE 的XP,XP2系列芯片.

使用特权

评论回复
14
mytempid| | 2011-2-19 10:05 | 只看该作者
Spartan-3AN的加密方式是使用内部的DNA,也就是一个序列号。这个其实很简单,你用一个工程读取DNA,然后通过你特殊的加密算法,生成一个KEY,写到Flash里面的某个位置。
每次工作的时候,都去读一下FLash里面的KEY,看看对不对,不对就拉低Reset。
这个几乎是不可能被**的,因为你根本找不到加密的位置。
dan_xb 发表于 2011-2-18 14:00


这个“特殊的加密算法”,是否会占用较大的空间呢?
如果太简单,多个样本flash比对后就能找到key
如果复杂,可能FPGA的资源就不够了

使用特权

评论回复
15
mytempid| | 2011-2-19 10:07 | 只看该作者
几年前,我用加密存储器做过双向认证保护FPGA,其实方法与xilinx的介绍方法差不多。资源占用不太多,成本也不高。
nl1031 发表于 2011-2-18 09:56


这个可能更实用

使用特权

评论回复
16
sxhhhjicbb| | 2011-2-19 22:53 | 只看该作者
解密可是一个大行业啊.

使用特权

评论回复
17
linas| | 2011-2-20 20:28 | 只看该作者
太谢谢各位大侠了。让我学到不少东西。

使用特权

评论回复
18
xiaobangfu| | 2011-2-21 18:17 | 只看该作者
让我学了很多东西

使用特权

评论回复
19
STARM| | 2011-2-21 19:30 | 只看该作者
An FPGA Design Security Solution Using a Secure Memory Device
http://altera.info/literature/wp/wp-01033.pdf


FPGA IFF Copy Protection Using Dallas Semiconductor/Maxim DS2432 Secure EEPROMs
http://www.xilinx.com/support/do ... n_notes/xapp780.pdf

How Secure Are FPGAs in Cryptographic Applications
http://www.crypto.rub.de/imperia ... pgasincryptoapp.pdf
http://eprint.iacr.org/2003/119.pdf

FPGA Design Security Issues: Using Lattice FPGAs to Achieve High Design Security
http://www.latticesemi.com/documents/doc18329x45.pdf

Protect Your FPGA Against Piracy: Cost-Effective Authentication Scheme Protects IP in SRAM-Based FPGA Designs
http://www.maxim-ic.com/app-notes/index.mvp/id/4594
http://pdfserv.maxim-ic.com/en/an/AN4594.pdf
http://pdfserv.maxim-ic.com/en/an/AN3826.pdf



Protecting FPGAs from Power Analysis
http://www.cryptography.com/public/pdf/FPGASecurity.pdf

Volatile FPGA design security a survey
http://www.cl.cam.ac.uk/~sd410/papers/fpga_security.pdf

A Whitepaper on SRAM FPGA security
http://www.fpga.com.cn/advance/skill/SRAM_Security_whitepaper.pdf


1-Wire is a registered trademark of Maxim Integrated Products, Inc.
Actel is a registered trademark of Actel Corporation.
Altera is a registered trademark and registered service mark of Altera Corporation.
Cyclone is a registered trademark of Altera Corporation.
Lattice Semiconductor Corporation is a registered trademark of Lattice Semiconductor Corporation.
QuickLogic is a registered trademark of QuickLogic Corporation.
Spartan is a registered trademark of Xilinx, Inc.
Xilinx is a registered trademark and registered service mark of Xilinx, Inc.

使用特权

评论回复
20
zhangqc04| | 2011-2-21 22:29 | 只看该作者
很好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

967

帖子

4

粉丝